社区讨论

萌新刚学期望,样例过了但是十分求助

P4316绿豆蛙的归宿参与者 2已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@lo7t4rbm
此快照首次捕获于
2023/10/27 07:20
2 年前
此快照最后确认于
2023/10/27 07:20
2 年前
查看原帖
CPP
#include <list>
#include <stdio.h>
class EdGe
{
	public:
		int to,nxt,val;
		EdGe()
		{
		}
}e[200005];
int cnt;
int head[1000005],in[1000005],out[1000005];
double f[1000005];
inline void add(int u,int v,int w)
{
	e[++cnt].to=v;
	e[cnt].nxt=head[u];
	head[u]=cnt;
	e[cnt].val=w;
}
int main()
{
	int x,y,n,m,u,v,w,i;
	scanf("%d %d",&n,&m);
	for(i=1;i<=n;++i)
		head[i]=-1;
	for(i=1;i<=n;++i)
	{
		scanf("%d %d %d",&u,&v,&w);
		add(v,u,w);
		++in[u];
		++out[u];
	}
	std::list<int> q;
	for(i=1;i<=n;++i)
	{
		if(in[i]==0)
			q.push_back(i);
	}
	while(!q.empty())
	{
		x=q.front();
		q.pop_front();
		for(i=head[x];~i;i=e[i].nxt)
		{
			y=e[i].to;
			f[y]+=(f[x]+e[i].val)/(out[y]);
			if(!--in[y])
				q.push_back(y);
		}
	}
	printf("%.2f",f[1]);
	return 0;
}

回复

5 条回复,欢迎继续交流。

正在加载回复...