日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

luogu P3244 [HNOI2015]落忆枫音

發(fā)布時(shí)間:2023/11/30 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 luogu P3244 [HNOI2015]落忆枫音 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

傳送門

md這題和矩陣樹定理沒半毛錢關(guān)系qwq

首先先不考慮有環(huán),一個(gè)\(DAG\)個(gè)外向樹個(gè)數(shù)為\(\prod_{i=2}^{n}idg_i(\)就是\(indegree_i)\),因?yàn)橥庀驑涿總€(gè)點(diǎn)入度為一,對(duì)于一個(gè)點(diǎn)有入度個(gè)父親可選,然后乘法原理起來就是答案

現(xiàn)在可能加一條邊會(huì)有環(huán),那么答案可以考慮總方案減不合法方案,不合法的有環(huán)方案就是環(huán)內(nèi)的點(diǎn)連好了,然后剩下的點(diǎn)貢獻(xiàn)方案,設(shè)\(s\)是個(gè)環(huán),那么方案為\(\sum_{s}\prod_{i\notin s}idg_i=\sum_{s}\frac{\prod_{i=2}^{n}idg_i}{\prod_{i\in s}idg_i}=\prod_{i=2}^{n}idg_i\sum_{s}\frac{1}{\prod_{i\in s}idg_i}\)

后面那個(gè)東西,因?yàn)榧恿诉?span id="ozvdkddzhkzd" class="math inline">\(x\rightarrow y\),所以一條\(y\)\(x\)可以確定一個(gè)環(huán),那么以\(y\)為初始狀態(tài),可拓?fù)渑判蛞槐閐p出來方案

注意\(y=1\)的情況

#include<bits/stdc++.h> #define LL long long #define db double #define il inline #define re registerusing namespace std; const int N=1e5+10,mod=1e9+7; il int rd() {int x=0,w=1;char ch=0;while(ch<'0'||ch>'9') {if(ch=='-') w=-1;ch=getchar();}while(ch>='0'&&ch<='9') {x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}return x*w; } int to[N<<1],nt[N<<1],hd[N],dg[N],idg[N],tot; void add(int x,int y){++tot,to[tot]=y,nt[tot]=hd[x],hd[x]=tot,++dg[y];} int n,m,u,v,f[N],inv[N]; queue<int> q;int main() {n=rd(),m=rd(),u=rd(),v=rd();for(int i=1;i<=m;++i){int x=rd(),y=rd();add(x,y);}int ans=1;for(int i=2;i<=n;++i) ans=1ll*ans*(dg[i]+(v==i))%mod;if(v!=u&&v!=1){memcpy(idg,dg,sizeof(dg));inv[0]=inv[1]=1;for(int i=2;i<=n+1;++i) inv[i]=(mod-1ll*mod/i*inv[mod%i]%mod)%mod;f[v]=1,q.push(1);while(!q.empty()){int x=q.front();q.pop();f[x]=1ll*f[x]*inv[dg[x]+(x==v)]%mod;for(int i=hd[x];i;i=nt[i]){int y=to[i];f[y]=(f[y]+f[x])%mod,--idg[y];if(!idg[y]) q.push(y);}}ans=1ll*ans*(1-f[u]+mod)%mod;}printf("%d\n",ans);return 0; }

轉(zhuǎn)載于:https://www.cnblogs.com/smyjr/p/10433079.html

總結(jié)

以上是生活随笔為你收集整理的luogu P3244 [HNOI2015]落忆枫音的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。