1k1 分钟

下降幂每次都重新计算会TLE :) #include <cstdio> #include <assert.h> using namespace std; using ll = long long; const int mod = 998244353; ll s[(int)2e3 + 9][(int)2e3 + 9] = {1}; ll n, m, k, tt; ll cal(ll x, ll t) { ll res = 1; for (ll i = x; i >
2.4k2 分钟

#include <cstdio> #include<assert.h> using namespace std; using ll = long long; const int mod = 998244353; template <int MOD, int RT> struct mint { static const int mod = MOD; static constexpr mint rt() { return RT; } // primitive
3.7k3 分钟

分治NTT,套了个dls自动取模的整数板子,但常数过大。 #include <assert.h> #include <cstdio> #include <iostream> using namespace std; using ll = long long; const int NR = 1 << 21; const int G = 3, Gi = 332748118; const int mod = 998244353; template <int MOD, int RT> st
2.3k2 分钟

只需把上下界最小流跑的残量网络最大流起始点换成$s->t$,和可行流相加即可。 #include <cstdio> #include <cstring> #include <queue> using namespace std; const int N = 125100; int n, m, s, t, tot = 1, hd[(int)6e4], cur[(int)6e4], ss, tt, dep[(int)6e4]; long long flow[(int)6e4], l[N]; struct Edge {
3.8k3 分钟

头晕。。。 所以即求 其中 #include <cstdio> #include <iostream> #include <cmath> using namespace std; using ll = long long; const int N = 1 << 21; const int P = 998244353; const int G = 3, Gi = 332748118; const int mod = 998244353; int qmi(int a, int b