BZOJ 4228 Tibbar的後花園

2021-09-25 23:17:27 字數 2804 閱讀 4812

傳送門

求 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,質數)取模的結果。

資料範圍:n≤1

06

n\le10^6

n≤106。

有乙個結論,即滿足條件的無向圖,要麼是一條鏈,要麼是乙個長度不為 3

33 的倍數的環。

因為當乙個點 x

xx 的度數 ≥

3\geq 3

≥3時,與 x

xx 相連的 3

33 個點之間距離兩兩相等,不符合題意。

我們先構造出鏈的 egf,即:

a (x

)=∑i

=0ni

!2xi

i!=∑

i=0n

xi

2a(x)=\sum_^n\frac\frac=\sum_^n\frac

a(x)=i

=0∑n

​2i!

​i!x

i​=i

=0∑n

​2xi

​ 就是長度為 i

ii 的鏈有 i!2

\frac

2i!​

種。還有注意一次項的係數為 111。

然後是環的 egf(注意環長不為 3

33 的倍數):

b (x

)=∑i

=4n[

i%3=

̸0]i

!2ix

ii!=

∑i=4

n[i%

3≠0

]xi2

ib(x)=\sum_^n[i\%3=\not 0]\frac\frac=\sum_^n[i\%3=\not 0]\frac

b(x)=i

=4∑n

​[i%

3≠​

0]2i

i!​i

!xi​

=i=4

∑n​[

i%3=

̸​0]

2ixi

​ 如果設整張圖的 egf 為 g(x

)=∑i

=0ng

ixii

!g(x)=\sum\limits_^g_i\frac

g(x)=i

=0∑n

​gi​

i!xi

​,那麼答案就是 g

ng_n

gn​,即 g(n

)×n!

g(n)\times n!

g(n)×n

!。由於整張圖是 a

aa 和 b

bb 的並集拼出來的,所以 g=e

a+

bg=e^

g=ea+b

,多項式 exp 即可。

時間複雜度 o(n

log⁡n)

o(n\log n)

o(nlogn)

#include

#include

#include

#include

#define n 5000005

#define p 1004535809

using

namespace std;

typedef vector<

int> poly;

const

int g=3;

int n,pos[n]

,fac[n]

,inv[n]

;int

add(

int x,

int y)

intdec

(int x,

int y)

intmul

(int x,

int y)

intpower

(int a,

int b,

int ans=1)

int*w[22]

,c=21

;void

prework()

void

init

(int lim)

void

ntt(poly &f,

int lim,

int type)}}

if(type==-1

&&(reverse

(f.begin()

+1,f.begin()

+lim),1

))}poly operator

*(poly a,poly b)

poly inv

(poly a,

int len)

b.resize

(len)

;return b;

}poly deriv

(poly a)

poly integ

(poly a)

poly ln

(poly a,

int len)

poly exp

(poly a,

int len)

b.resize

(len)

;return b;

}int

main()

BZOJ 4228 Tibbar的後花園

please contact lydsy2012 163.com 警告 解題思路 可以證明最終的圖中所有點的度數都 3 且不存在環長是 3 的倍數的環。這是充分必要的,由於圖不聯通,其就是由若干個聯通塊組成的,每個聯通塊是一條鏈或者環長不是 3 的倍數的環,然後強上egf就好了。列出鏈的egf和環的...

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...