其他分享
首页 > 其他分享> > P4316 绿豆蛙的归宿

P4316 绿豆蛙的归宿

作者:互联网

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;
}

标签:归宿,ll,绿豆蛙,long,maxn,P4316,define
来源: https://www.cnblogs.com/sissi/p/15116288.html