离谱的错误
查看原帖
离谱的错误
226944
光锥xn楼主2021/4/7 23:14
#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]);
}

下样例后 在本地输出正确,但洛谷上显示输出错误(是答案错的那种)。(雾

2021/4/7 23:14
加载中...