11 条题解

  • 0
    @ 2023-5-26 18:06:22
    #include<bits/stdc++.h>
    #define int long long
    #define double long double
    #define endl "\n"
    using namespace std;
    const int MAXN=100000;
    struct E
    {
    	int v,w;
    };
    vector<E> e[MAXN+5];
    int n,m;
    double val[MAXN+5];//每个点期望值 
    double dfs(int now)
    {
    	if(val[now])
    		return val[now];
    	if(now==n)
    		return val[now]=0;
    	double res=0;
    	for(int i=0;i<e[now].size();i++)
    		res+=(dfs(e[now][i].v)+e[now][i].w);
    	res/=e[now].size();
    	return val[now]=res;
    }
    signed main()
    {
    	ios::sync_with_stdio(false);
    	cin.tie(0);
    	cin>>n>>m;
    	for(int i=1;i<=m;i++)
    	{
    		int u,v,w;
    		cin>>u>>v>>w;
    		e[u].push_back({v,w});
    	}
    	cout<<fixed<<setprecision(2)<<dfs(1)<<endl;
    	return 0;
    }
    

信息

ID
1283
时间
1000ms
内存
256MiB
难度
9
标签
递交数
10
已通过
10
上传者