求助,windows与洛谷测评机运行结果不同
查看原帖
求助,windows与洛谷测评机运行结果不同
456724
2020kanade楼主2021/10/10 18:28
#include<iostream>
#include<algorithm>
#include<cstring>
#include<queue>
using namespace std;
typedef long long LL;
const LL M=20001,N=201;
struct edge
{
	LL to,val,next;
}G[M];
LL head[N],cnt,in[N],n,m;bool nout[N];
inline void ae(LL u,LL v,LL val)
{
	edge& GN=G[cnt];GN.to=v;GN.val=val;GN.next=head[u];head[u]=cnt++;
}
struct node
{
	LL c,u,w;
}NG[N];
inline void toposort()
{
	queue<LL> q;
	for(auto i=1;i<=n;i++) if(!in[i]) q.push(i);
	while(!q.empty())
	{
		auto t=q.front();q.pop();
		for(auto i=head[t];i!=-1;i=G[i].next)
		{
			edge& ne=G[i];
			NG[ne.to].w+=ne.val;
			if(in[G[i].to]==0) {NG[ne.to].c=NG[i].c*NG[ne.to].w-NG[ne.to].u;if(NG[ne.to].c>0) q.push(ne.to);}
		}
	}
}
int main()
{
	memset(head,-1,sizeof(head));
	cin>>n>>m;
	for(auto i=1;i<=n;i++) cin>>NG[i].c>>NG[i].u;
	for(auto i=1;i<=m;i++)
	{
		LL u,v,val;cin>>u>>v>>val;ae(u,v,val);in[v]++;if(!nout[u]) nout[u]=1;
	}
	toposort();bool flag=0;
	for(auto i=1;i<=n;i++) if(!nout[i])
	{
		if(!flag) flag=1;cout<<i<<" "<<NG[i].c<<endl;
	}
	if(!flag) cout<<"NULL";
	return 0;
}

对于样例,本机(windows7 32位,IDE为DEV-CPP,g++ 4.8.1,使用-std=c++11 编译指令为-o)输出正确,洛谷IDE输出的神经元状态全部为0,测评20分,除了#5全错

感觉是Linux与windows系统的差别 也就是代码写得鲁棒性不高

请教各位错误在哪里 以后该如何避免 多谢各位神犇

2021/10/10 18:28
加载中...