1. 程式人生 > 其它 >js最新手機號碼、電話號碼正則表示式

js最新手機號碼、電話號碼正則表示式

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