题解 | 绿豆蛙的归宿

绿豆蛙的归宿

https://www.nowcoder.com/practice/764c0b1b34d24122bd9ae75220e370a3

想好路径期望怎么计算之后,使用 DFS 记忆化搜索就好

#include<bits/stdc++.h>
using namespace std;
using ll=long long;
const ll N=1e5+5;
struct E{
    ll id;
    double w;
};
vector<vector<E>>adj(N);
vector<double>vis(N,-1);
ll n,m;

void dfs(ll x){
    if(adj[x].size()==0||x==n){
        vis[x]=0;
        return;
    }
    double t=1/(double)adj[x].size();
    double sum=0;
    for(auto it:adj[x]){
        if(vis[it.id]==-1){
            dfs(it.id);
        }
        sum+=vis[it.id]+it.w;
    }
    vis[x]=sum*t;
}

int main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    
    cin>>n>>m;
    for(ll i=1;i<=m;i++){
        ll u,v;
        double w;
        cin>>u>>v>>w;
        adj[u].push_back({v,w});
    }
    dfs(1);
    printf("%.2lf",vis[1]);

    return 0;
}

全部评论

相关推荐

牛客44320985...:你的当务之急是把这个糖的要死的沟槽ide主题改了
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务