BZOJ4766 文藝計算姬

2022-05-10 22:02:30 字數 1425 閱讀 4138

"奮戰三星期,造台計算機"。小w響應號召,花了三星期造了臺文藝計算姬。文藝計算姬比普通計算機有更多的藝

術細胞。普通計算機能計算乙個帶標號完全圖的生成樹個數,而文藝計算姬能計算乙個帶標號完全二分圖的生成樹

個數。更具體地,給定乙個一邊點數為n,另一邊點數為m,共有n*m條邊的帶標號完全二分圖k_,計算姬能快

速算出其生成樹個數。小w不知道計算姬算的對不對,你能幫助他嗎?

僅一行三個整數n,m,p,表示給出的完全二分圖k_

1 <= n,m,p <= 10^18

僅一行乙個整數,表示完全二分圖k_的生成樹個數,答案需要模p。

2 3 7

5顯然可以用矩陣樹定理,但是是$o(n^3)$

顯然這道題是不行的

考慮打表,附上打表程式

1 #include2 #include3 #include4 #include5 #include6

using

namespace

std;

7 typedef long

long

lol;

8int a[301][301],mod=1e9+7

,n,m,ans;

9char s[301][301

];10

void

guass()

11 20}21

for (i=1;i<=n;i++)

2233 ans*=-1;34

}35}36 ans=1ll*ans*a[i][i]%mod;37}

38 ans=(ans+mod)%mod;39}

40int

main()

41 50}51

guass();

52 cout<1-m<

''<

53 }

view code矩陣樹

分解因數後發現

$ans=n^*m^$

1 #include2 #include3 #include4 #include5 #include6

using

namespace

std;

7 typedef long

long

lol;

8lol ans1,ans2,n,m,mod,ans;

9lol qadd(lol x,lol y)

1019 x=(x+x);

20if (x>=mod) x-=mod;

21 y>>=1;22

}23return

res;24}

25lol qpow(lol x,lol y)

2634

return

res;35}

36int

main()

37

bzoj4766 文藝計算姬

求乙個完全二分圖的生成樹個數 構造基爾霍夫矩陣的余子式,發現是這樣的 先用上面n 1行每一行都去加第n行。然後第n行變成n 1個m 1然後乙個1再來m 1個1 n 用下面m 1行每一行都去加第n行。然後第n行變成只有後m個位置是1。用第n行去加前n 1行,就把那堆 1消掉了。然後變成下三角矩陣,行列...

bzoj4766 文藝計算姬

今天七道題 5 7 定理,完全二分圖生成樹的個數是 nm 1mn 1然後就沒有然後了 聽說現場的很多大佬都是打了張表然後一行一行看出來的。好厲害啊我也學會了。結論題 include include define ll unsigned long long using namespace std ll...

BZOJ 4766 文藝計算姬

傳送門 題目描述 奮戰三星期,造台計算機 小 w 響應號召,花了三星期造了臺文藝計算姬。文藝計算姬比普通計算機有更多的藝術細胞。普通計算機能計算乙個帶標號完全圖的生成樹個數,而文藝計算姬能計算乙個帶標號完全二分圖的生成樹個數。更具體地,給定乙個一邊點數為 n nn,另一邊點數為 m mm,共有 n ...