#include<bits/stdc++.h>
#define maxx 100005
using namespace std;
queue<int>q;
int next[maxx],head[maxx],va[maxx],to[maxx],len;
int n,m,size[maxx],in[maxx];
double d[maxx];
void add(int x,int y,int z)
{
len++;
to[len]=y;va[len]=z;
next[len]=head[x];head[x]=len;
}
int main()
{
int i,j,x,y,z;
scanf("%d%d",&n,&m);
q.push(n);
for(i=1;i<=m;i++){
scanf("%d%d%d",&x,&y,&z);
add(y,x,z);
in[x]++;size[x]++;
}
for(i=1;i<=n;i++)printf("%d ",va[i]);
while(q.size()){
x=q.front();q.pop();
for(i=head[x];i;i=next[i]){
d[to[i]]+=(double)((d[x]+va[i])/size[to[i]]);
in[to[i]]--;
if(!in[to[i]])q.push(to[i]);
}
}
printf("%.2f",d[1]);
}
下样例后 在本地输出正确,但洛谷上显示输出错误(是答案错的那种)。(雾