kyopro-lib

This documentation is automatically generated by online-judge-tools/verification-helper

View on GitHub

:x: Enumerate supersets (Descending order)
(Mylib/Bit/enumerate_supersets_desc.cpp)

Operations

Requirements

Notes

Problems

References

Verified with

Code

#pragma once

namespace haar_lib {
  template <typename Func>
  void enumerate_supersets_desc(int a, int n, const Func &f) {
    const int x = (1 << n) - 1, y = x ^ (a & x);
    for (int t = y;; t = (t - 1) & y) {
      if (not f(t | a)) break;
      if (t == 0) break;
    }
  }
}  // namespace haar_lib
#line 2 "Mylib/Bit/enumerate_supersets_desc.cpp"

namespace haar_lib {
  template <typename Func>
  void enumerate_supersets_desc(int a, int n, const Func &f) {
    const int x = (1 << n) - 1, y = x ^ (a & x);
    for (int t = y;; t = (t - 1) & y) {
      if (not f(t | a)) break;
      if (t == 0) break;
    }
  }
}  // namespace haar_lib
Back to top page