BZOJ 4766 文藝計算姬

2021-08-29 02:50:59 字數 1803 閱讀 7132

傳送門

題目描述:

「奮戰三星期,造台計算機」。小 w 響應號召,花了三星期造了臺文藝計算姬。

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

更具體地,給定乙個一邊點數為 n

nn,另一邊點數為 m

mm,共有 n∗m

n*mn∗

m 條邊的帶標號完全二分圖 kn,

mk_

kn,m

​,計算姬能快速算出其生成樹個數。

小 w 不知道計算姬算的對不對,你能幫助他嗎?

輸入格式:

僅一行三個整數 n,m

,p

n,m,p

n,m,

p,表示給出的完全二分圖 kn,

mk_

kn,m​。

輸出格式:

僅一行乙個整數,表示完全二分圖 kn,

mk_

kn,m

​ 的生成樹個數,答案需要模 ppp。

樣例資料:輸入

2 3 7 輸出

5 備註:

【資料範圍】

20% 的資料:n∗m

≤20

n*m ≤ 20

n∗m≤20

另有 10% 的資料:n=2

n=2n=

2另有 20% 的資料:n=3

,m≤1

06

n=3 , m≤10^6

n=3,m≤

106另有 20% 的資料:n=4

n=4n=

4100% 的資料:1≤n

,m,p

≤1018

1 ≤n,m,p ≤ 10^

1≤n,m,

p≤10

18直接說結論吧,最後的答案 ans

=mn−

1⋅nm

−1mo

dp

ans=m^\cdot n^ \;mod\;p

ans=mn

−1⋅n

m−1m

odp

當然,這個東西我是沒有推出來的,我們老師直接給我們說了結論,讓我們當成快速冪板子做

注意兩個 lon

glon

glong\;long

longlo

ng相乘很可能會爆 lon

glon

glong\;long

longlo

ng的範圍,我們要用快速積來防止爆精度

#include

#include

#include

using

namespace std;

long

long n,m,p;

long

long

multiply

(long

long a,

long

long b,

long

long c)

return ans;

}long

long

power

(long

long a,

long

long b,

long

long c)

return ans;

}int

main()

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 文藝計算姬

題目 給定兩邊節點數為n和m的完全二分圖,求生成樹數取模給定的p。n,m,p 10 18。演算法 生成樹計數 矩陣樹定理 題解 參考自 bzoj4766 文藝計算姬 by werkeytom ftd 構造完全二分圖的基爾霍夫矩陣的余子式如下 去除第一行第一列 n 3,m 3,空白格皆為0 為了消項形...