js最新手機號碼、電話號碼正則表示式
阿新 • • 發佈:2021-07-28
P4316 綠豆蛙的歸宿
概率,拓撲排序。
沒想到啊,自己竟然被一道黃題卡住了。
有向無環圖,直接拓撲排序走起。
這裡可能有點難的也就概率吧。
這裡的期望長度=每條邊的長度*走過這條邊的概率 的總和。
#include <bits/stdc++.h> #define ll long long #define maxn 100010 using namespace std; ll n,m,hd[maxn],cnt; double ans; ll x,y,z; struct Node{ ll nx,to,dis; }e[maxn<<2]; inline ll read(){ ll x=0,f=0;char c=getchar(); while(!isdigit(c)) f|=c=='-',c=getchar(); while(isdigit(c)) x=(x<<1)+(x<<3)+(c^48),c=getchar(); return f?-x:x; } inline void add(ll u,ll v,ll w){ e[++cnt].to=v; e[cnt].nx=hd[u]; e[cnt].dis=w; hd[u]=cnt; } inline void dfs(ll nw,double ak){ ll tmp=0; for(register int i=hd[nw];i;i=e[i].nx) ++tmp; ak/=tmp; for(register int i=hd[nw];i;i=e[i].nx){ ans+=ak*e[i].dis; dfs(e[i].to,ak); } } int main(){ n=read();m=read(); for(register int i=1;i<=m;++i){ x=read();y=read();z=read(); add(x,y,z); } dfs(1,1); printf("%.2lf\n",ans); return 0; }