题解对蒟蒻真的不太友好
查看原帖
题解对蒟蒻真的不太友好
1310428
CHGM楼主2025/1/18 19:19

题解一堆术语、公式、符号,看半天我都看不懂,自己想分分钟想明白,附AC代码:

#include<bits/stdc++.h>
using namespace std;
struct node{
    int y,s;
};
int n,m,x,y,s,r[100005];
double d,gl[100005];
vector<node> a[100005];
void dfs(int id,double g){
    r[id]--,gl[id]+=g;//更新入度、概率
    if(r[id]!=0)return;//入度还不为零,说明概率没统计完,返回
    for(int i=0;i<a[id].size();i++){
        d+=gl[id]/a[id].size()*a[id][i].s;//求期望
        dfs(a[id][i].y,gl[id]/a[id].size());//下传概率
    }
    return;
}
int main(){
    cin>>n>>m;
    for(int i=1;i<=m;i++){
    	cin>>x>>y>>s;
    	a[x].push_back(node{y,s});//存图
        r[y]++;//存入度
	}
    r[1]=1;//1的入度设为1,方便搜索
	dfs(1,1.0);
	printf("%.2lf",d);
    return 0;
}
2025/1/18 19:19
加载中...