洛谷p4233
我們只需求出總的哈密頓迴路個數和總的強聯通競賽圖個數
對於每條哈密頓迴路,我們統計其貢獻
一條哈密頓迴路就是乙個圓排列,有\(\frac\)種,剩餘邊隨便連
所以總的貢獻為
\[(n - 1)!2^ - n}
\]我們只需求出總的強聯通競賽圖的個數
設\(g[n]\)表示\(n\)個點競賽圖個數,\(f[n]\)表示強聯通競賽圖個數
那麼有\[g[n] = \sum\limits_^f[i]g[n - i]\]即
\[\frac = \sum\limits_^\frac\frac
\]設\(g(x)\)和\(f(x)\)分別為其指數型生成函式
那麼有\[g(x) = f(x)g(x) + 1\]即
\[f(x) = \frac
\]多項式求逆即可
複雜度\(o(nlogn)\)
#include#include#include#include#include#include#include#include#include#define ll long long int
#define rep(i,n) for (int i = 1; i <= (n); i++)
#define redge(u) for (int k = h[u],to; k; k = ed[k].nxt)
#define cls(s,v) memset(s,v,sizeof(s))
#define mp(a,b) make_pair(a,b)
#define cp pairusing namespace std;
const int maxn = 400005,maxm = 100005,inf = 0x3f3f3f3f;
inline int read()
while (c >= 48 && c <= 57)
return flag ? out : -out;
}const int p = 998244353,g = 3;
inline int qpow(int a,ll b)
inline ll c(int n)
int r[maxn];
void ntt(int* a,int n,int f)
} }if (f == 1) return;
int nv = qpow(n,p - 2); reverse(a + 1,a + n);
for (int i = 0; i < n; i++) a[i] = 1ll * a[i] * nv % p;
}int a[maxn],b[maxn],c[maxn],ans,n,fac[maxn],inv[maxn],fv[maxn];
void init()
}void inv(int deg,int* a,int* b)
inv((deg + 1) >> 1,a,b);
int l = 0,n = 1;
while (n < (deg << 1)) n <<= 1,l++;
for (int i = 1; i < n; i++) r[i] = (r[i >> 1] >> 1) | ((i & 1) << (l - 1));
for (int i = 0; i < deg; i++) c[i] = a[i];
for (int i = deg; i < n; i++) c[i] = 0;
ntt(c,n,1); ntt(b,n,1);
for (int i = 0; i < n; i++)
b[i] = 1ll * ((2ll - 1ll * c[i] * b[i] % p) + p) % p * b[i] % p;
ntt(b,n,-1);
for (int i = deg; i < n; i++) b[i] = 0;
}int main()
return 0;
}
洛谷 P1901 發射站
某地有 n 個能量發射站排成一行,每個發射站 i 都有不相同的高度 hi,並能向兩邊 當 然兩端的只能向一邊 同時發射能量值為 vi 的能量,並且發出的能量只被兩邊最近的且比 它高的發射站接收。顯然,每個發射站發來的能量有可能被 0 或 1 或 2 個其他發射站所接受,特別是為了安 全,每個發射站接...
洛谷P1901 發射站
這道題跟 noip2012 開車旅行的預處理完全一樣。通過鍊錶來實現。1 include 2 3using namespace std 45 define re register 6 define rep i,a,b for re int i a i b i 7 define repd i,a,b ...
洛谷P1901 發射站(單調棧)
某地有 n 個能量發射站排成一行,每個發射站 i 都有不相同的高度 hi,並能向兩邊 當 然兩端的只能向一邊 同時發射能量值為 vi 的能量,並且發出的能量只被兩邊最近的且比 它高的發射站接收。顯然,每個發射站發來的能量有可能被 0 或 1 或 2 個其他發射站所接受,特別是為了安 全,每個發射站接...