#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系统的差别 也就是代码写得鲁棒性不高
请教各位错误在哪里 以后该如何避免 多谢各位神犇