用脈絡樹總數減去不合法的情況(即樹上有環的情況),拓撲序dp,注意特判連的邊指向1的情況
學到了新姿勢:線性求逆元
原理: (假設現在要求a的逆元,x=mod/a,y=mod%a) ax
+y≡0
→−ax
≡y→a
−1≡−
x∗y−
1 ax+
y≡0→
−ax≡
y→a−
1≡−x
∗y−1
code:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define ll long long
using
namespace
std;
const
int maxn = 110000;
const
int maxm = 210000;
const ll mod = 1e9+7;
queue
q;struct edge
edge(int a,int b)
}a[maxm]; int len,fir[maxn];
void ins(int x,int y)
ll n[maxn],f[maxn],d[maxn],dt[maxn];
int n,m,sx,sy;
ll ret;
void get_n()
void solve()
d[sy]++;
while(!q.empty())
}}int main()
ret=1ll; d[sy]++;
for(int i=2;i<=n;i++)ret=(ret*d[i])%mod;
if(sy==1)
solve();
printf("%lld\n",(ret-f[sx]+mod)%mod);
return
0;}
BZOJ 4011 HNOI2015 落憶楓音
題意 給乙個有向無環圖,然後叫一條邊,問以1為根的生成樹數量。題面好長啊,出題人真能編故事 先考慮不加那條邊,則麼ans d 2 d 3 d 4 d n d為入度 因為在乙個dag中,只要除根以外的點每個點選一條入邊,就能獲得一棵生成樹。現在考慮加了這條邊,如果再這麼算,就有可能出現環的情況,所以我...
BZOJ4011 HNOI2015 落憶楓音
不妨假設楓葉上有 n個穴位,穴位的編號為 1 n。有若干條有向的脈絡連線著這些穴位。穴位和脈絡組成乙個有向無環圖 稱之為脈絡圖 例如圖 1 穴位的編號使得穴位 1 沒有從其他穴位連向它的脈絡,即穴位 1 只有連出去的脈絡 由上面的故事可知,這個有向無環圖存在乙個樹形子圖,它是以穴位 1為根的包含全部...
bzoj4011 HNOI2015 落憶楓音
description 恆逸,你相信靈魂的存在嗎?郭恆逸和姚楓茜漫步在楓音鄉的街道上。望著漫天飛舞的紅楓,楓茜突然問出 這樣乙個問題。相信吧。不然我們是什麼,一團肉嗎?要不是有靈魂 我們也不可能再見 到你姐姐吧。恆逸給出了乙個略微無厘頭的回答。楓茜聽後笑了笑。那你仔細觀察過楓葉嗎?說罷,楓茜伸手,接...