为什么当一条边连接了点 n 后,其经过次数的期望还是要算上另外一个点的期望,而不是直接是1?
从代码上来说:
正解:
for(int i=1;i<=m;i++){
if(edge_ans[i].f!=n) edge_ans[i].qw+=ans[edge_ans[i].f]/(long double)du[edge_ans[i].f];
if(edge_ans[i].t!=n) edge_ans[i].qw+=ans[edge_ans[i].t]/(long double)du[edge_ans[i].t];
}
疑问
for(int i=1;i<=m;i++){
if(edge_ans[i].f==n||edge_ans[i].t==n){edge_ans[i].qw=1;continue;}
edge_ans[i].qw=ans[edge_ans[i].t]/(long double)du[edge_ans[i].t]+ans[edge_ans[i].f]/(long double)du[edge_ans[i].f];
}