maomao90's Library
A C++20 library for competitive programming.
Loading...
Searching...
No Matches
maomao90 Namespace Reference

Namespaces

namespace  internal
 

Classes

struct  dynamic_modint
 
struct  HashingCustomHash
 
struct  HashMap
 
struct  LazySegTree
 
struct  MaxMonoid
 
struct  MinMonoid
 
struct  MultisetHash
 
struct  NoLazy
 Lazy that does not apply any updates. More...
 
struct  Poly
 
struct  SegTree
 
struct  SplayTree
 A balanced binary search tree. More...
 
struct  static_modint
 
struct  SumMonoid
 
struct  ValueMonoid
 Only stores a value, and does not have a binary operation. More...
 

Concepts

concept  Monoid
 
concept  Lazy
 
concept  Hashing
 
concept  ModInt
 
concept  StaticModInt
 

Enumerations

enum  PolySetting { ntt , fft , fft_sqrt , fft_complex }
 

Functions

constexpr unsigned long long splitmix64 (unsigned long long x)
 
template<signed_integral T>
requires internal::type_traits::is_64bit_or_less_v<T>
constexpr T inv_gcd (T x, T mod)
 
template<typename T, typename G>
requires requires(G g, long long prime) { { g(prime) } -> same_as<T>; } && internal::concepts::Addable<T> && internal::concepts::Subtractable<T> && internal::concepts::Multipliable<T>
vector< T > lucy_dp (long long n, vector< T > sumg, G g)
 
template<typename T, typename F>
requires requires(F f, long long prime, int power) { { f(prime, power) } -> same_as<T>; } && internal::concepts::Addable<T> && internal::concepts::Subtractable<T> && internal::concepts::Multipliable<T>
vector< T > min25_sieve (long long n, vector< T > sumfp, F f)
 
template<integral T, internal::concepts::broadly_unsigned_integral P>
requires internal::type_traits::is_64bit_or_less_v<T>
constexpr T pow_mod (T b, P p, T mod)
 
template<unsigned_integral T>
requires internal::type_traits::is_64bit_or_less_v<T>
constexpr bool miller_rabin (const T &n, const T *bases, const size_t size)
 
template<unsigned_integral T>
requires internal::type_traits::is_64bit_or_less_v<T>
constexpr bool is_prime (T n)
 

Variables

template<int id>
internal::math::barrett dynamic_modint< id >::bt (998244353)
 

Enumeration Type Documentation

◆ PolySetting

Enumerator
ntt 
fft 
fft_sqrt 
fft_complex 

Function Documentation

◆ splitmix64()

unsigned long long maomao90::splitmix64 ( unsigned long long x)
constexpr

◆ inv_gcd()

template<signed_integral T>
requires internal::type_traits::is_64bit_or_less_v<T>
T maomao90::inv_gcd ( T x,
T mod )
constexpr

◆ lucy_dp()

template<typename T, typename G>
requires requires(G g, long long prime) { { g(prime) } -> same_as<T>; } && internal::concepts::Addable<T> && internal::concepts::Subtractable<T> && internal::concepts::Multipliable<T>
vector< T > maomao90::lucy_dp ( long long n,
vector< T > sumg,
G g )

◆ min25_sieve()

template<typename T, typename F>
requires requires(F f, long long prime, int power) { { f(prime, power) } -> same_as<T>; } && internal::concepts::Addable<T> && internal::concepts::Subtractable<T> && internal::concepts::Multipliable<T>
vector< T > maomao90::min25_sieve ( long long n,
vector< T > sumfp,
F f )

◆ pow_mod()

template<integral T, internal::concepts::broadly_unsigned_integral P>
requires internal::type_traits::is_64bit_or_less_v<T>
T maomao90::pow_mod ( T b,
P p,
T mod )
constexpr

◆ miller_rabin()

template<unsigned_integral T>
requires internal::type_traits::is_64bit_or_less_v<T>
bool maomao90::miller_rabin ( const T & n,
const T * bases,
const size_t size )
constexpr

◆ is_prime()

template<unsigned_integral T>
requires internal::type_traits::is_64bit_or_less_v<T>
bool maomao90::is_prime ( T n)
constexpr

Variable Documentation

◆ dynamic_modint< id >::bt

template<int id>
internal::math::barrett maomao90::dynamic_modint< id >::bt(998244353) ( 998244353 )