BZOJ 4228 Tibbar的後花園

2022-03-31 16:50:02 字數 1851 閱讀 7644

please contact [email protected]! 警告

解題思路

可以證明最終的圖中所有點的度數都 \(< 3\) ,且不存在環長是 \(3\) 的倍數的環。這是充分必要的,由於圖不聯通,其就是由若干個聯通塊組成的,每個聯通塊是一條鏈或者環長不是 \(3\) 的倍數的環,然後強上egf就好了。

列出鏈的egf和環的egf

\[a(x)=x+\sum_\dfrac \\

b(x)=\sum_ \dfrac

\]答案的egf就是 \(\exp(a(x)+b(x))\) ,多項式 \(\exp\) 完再乘個階乘,複雜度 \(\mathcal o(n\log n)\) ,需要板子比較快。

code

/*program by mangoyang*/

#include#define inf (0x7f7f7f7f)

#define max(a, b) ((a) > (b) ? (a) : (b))

#define min(a, b) ((a) < (b) ? (a) : (b))

typedef long long ll;

using namespace std;

template inline void read(t &x)

const int n = (1 << 22) + 5, p = 1004535809, g = 3;

namespace poly

inline void init()

inline void timesinit(int lenth)

inline void dft(int *a, int sgn)

}} if(sgn == -1)

} inline void getinv(int *a, int *b, int n)

inline void getsqrt(int *a, int *b, int n)

inline void getln(int *a, int *b, int n)

inline void getexp(int *a, int *b, int n)

inline void power(int *a, int *b, int n, int m, ll k)

if(fir && k >= m) return;

if(fir == -1 || 1ll * fir * k >= m) return;

for(int i = fir; i < n; i++) b[i-fir] = a[i];

for(int i = 0; i < n - fir; i++)

b[i] = 1ll * b[i] * pow(a[fir], p - 2) % p;

getln(b, tmp, m);

for(int i = 0; i < m; i++)

b[i] = 1ll * tmp[i] * (k % p) % p, tmp[i] = 0;

getexp(b, tmp, m);

for(int i = m; i >= fir * k; i--)

b[i] = 1ll * tmp[i-fir*k] * pow(a[fir], k % (p - 1)) % p;

for(int i = 0; i < fir * k; i++) b[i] = 0;

for(int i = 0; i < m; i++) tmp[i] = 0; }}

using poly::pow;

using poly::dft;

using poly::timesinit;

int a[n], b[n], a[n], f[n], g[n], n, m;

int main()

BZOJ 4228 Tibbar的後花園

傳送門 求 nn n 個帶標號的點能滿足如下條件的無向圖個數 不存在重邊和自環。不存在三個點 a,b c a,b,c a,b,c,使三個點距離兩兩相等。輸出答案對 1004535809 1004535809 100453 5809 479 2 21 1479 times2 1 479 22 1 1,...

Tibbar的後花園 生成函式,多項式exp

這篇文章僅限於沒有入門生成函式的蒟蒻讀,dalao勿噴 題目的資料範圍是 n 2 題目給出的限制,其實就是對於每乙個聯通塊 1.不存在乙個點度數 ge 3 2.不存在乙個長度為 3 的倍數的環 可以看到,乙個大小為 n 的聯通塊,合法方案只有為一條鏈,或者乙個長度不為3的倍數的環 設 f n 為大小...

BZOJ3450 BZOJ4318 期望的線性性質

這兩個題的套路是一樣的,放在一起說。因為期望有線性性質,也就是說我們可以分開算每一位的期望,再加起來就是答案。由於e x 1 2 x 2 2 e x 1e x 1 2 x2 2e x 1,所以我們只需要維護乙個期望長度即可,維護的方法十分簡單,相信聰明的你很快就能明白。include using n...