"奮戰三星期,造台計算機"。小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 #include6view code矩陣樹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 }
分解因數後發現
$ans=n^*m^$
1 #include2 #include3 #include4 #include5 #include6using
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 ...