bzoj3456 城市規劃 多項式求In

2022-04-30 05:57:11 字數 1913 閱讀 4872

\(n\)個點的無向聯通圖的個數

打著好累啊

一定要封裝乙個板子

記\(c(x)\)為無向圖個數的指數型生成函式,\(c(0) = 1\)

記\(g(x)\)為無向聯通圖個數的指數型生成函式,\(g(0) = 0\)

那麼\(g(x) = e^\)

從而,\(c(x) = in(g(x))\)

複雜度\(o(n \log n)\)

#include #include #include #include using namespace std;

#define ri register int

#define rep(io, st, ed) for(ri io = st; io <= ed; io ++)

#define drep(io, ed, st) for(ri io = ed; io >= st; io --)

const int sid = 270000;

const int mod = 1004535809;

inline int inc(int a, int b)

inline int dec(int a, int b)

inline int mul(int a, int b)

inline int fp(int a, int k)

int n_, n, n, lg;

int ans[sid], ivfac[sid], fac[sid], inv[sid], rev[sid];

inline void init(int maxn, int &rn, int &rlg, int opt = 0)

inline int ntt(int *a, int n, int opt)

if(opt == -1)

}int iva[sid], ivb[sid];

inline void get_inv(int *a, int n, int *ret)

get_inv(a, n >> 1, ret);

init(n + n, n, lg, 1);

for(ri i = 0; i < n; i ++) iva[i] = ivb[i] = 0;

for(ri i = 0; i < n; i ++) iva[i] = a[i], ivb[i] = ret[i];

ntt(iva, n, 1); ntt(ivb, n, 1);

for(ri i = 0; i < n; i ++) iva[i] = dec(inc(ivb[i], ivb[i]), mul(iva[i], mul(ivb[i], ivb[i])));

ntt(iva, n, -1);

for(ri i = 0; i < n; i ++) ret[i] = iva[i];

}inline void wf(int *a, int n, int *ret)

inline void jf(int *a, int n, int *ret)

int ivf[sid], df[sid];

inline void get_ln(int *a, int n, int *ret)

int c2[sid], f[sid];

int main()

rep(i, 2, n_) ivfac[i] = mul(inv[i], ivfac[i - 1]);

rep(i, 0, n_) c2[i] = 1ll * i * (i - 1) / 2 % (mod - 1);

rep(i, 0, n_) f[i] = mul(fp(2, c2[i]), ivfac[i]);

n_ >>= 1;

get_ln(f, n_, ans);

printf("%d\n", mul(ans[n], fac[n]));

return 0;

}

bzoj3456 城市規劃 多項式,分治

description 剛剛解決完電力網路的問題,阿狸又被領導的任務給難住了.剛才說過,阿狸的國家有n個城市,現在國家需要在某些城市對之間建立一些 路線,使得整個國家的任意兩個城市都直接或間接的連通.為了省錢,每兩個城市之間最多只能有一條直接的 路徑.對於兩個建立路線的方案,如果存在乙個城市對,在兩...

多項式求逆 BZOJ3456 城市規劃

剛剛解決完電力網路的問題,阿狸又被領導的任務給難住了.剛才說過,阿狸的國家有n個城市,現在國家需要在某些城市對之間建立一些 路線,使得整個國家的任意兩個城市都直接或間接的連通.為了省錢,每兩個城市之間最多只能有一條直接的 路徑.對於兩個建立路線的方案,如果存在乙個城市對,在兩個方案中是否建立路線不一...

bzoj3456城市規劃 多項式取模

求出有n個點的有標號簡單連通無向圖的數目。什麼破玩意,直接輸出 2 走人 我們發現這張圖要求連通,而上式肯定不能保證連通。其實上式表示的是不保證連通的有標號簡單無向圖。就差在乙個連通上啊。所以我們設 f x 表示有x個點的有標號簡單連通無向圖的數目。然後設 g x 為上式,即不保證連通時的方案數 於...