P1038神经网络 快来帮我找bug 0分 我找了1天了
查看原帖
P1038神经网络 快来帮我找bug 0分 我找了1天了
214853
Mecci_miaowu楼主2021/2/7 17:40

快来帮我找bug

#include<bits/stdc++.h>
using namespace std;
struct edge{
	int s,e,v,next;
}eg[10005];
int head[105];
int cnt;
int ru[105];
int chu[105];
void make(int s,int e,int v){
	++cnt;
	++chu[s];
	++ru[e];
	eg[cnt].s=s;
	eg[cnt].e=e;
	eg[cnt].v=v;
	eg[cnt].next=head[s];
	head[s]=cnt;
}
int n,p;
int c[105],u[105];
queue<int>q;
int main(){
	scanf("%d%d",&n,&p);
	for(int i=1;i<=n;++i)
		scanf("%d%d",c+i,u+i);
	for(int i=0;i<p;++i){
		int s,e,v;
		scanf("%d%d%d",&s,&e,&v);
		make(s,e,v);
	}
	for(int i=1;i<=n;++i)
		if(!ru[i])q.push(i);
	while(!q.empty()){
		int f=q.front();
		q.pop();
		for(int i=head[f];i;i=eg[i].next){
			--ru[eg[i].e];
			if(!ru[eg[i].e])q.push(eg[i].e);
			if(c[f]>0)c[eg[i].e]+=eg[i].v*c[f];
		}
	}
	bool flag=0;
	for(int i=1;i<=n;++i){
		if(!chu[i]&&c[i]-u[i]>0){
			printf("%d %d\n",i,c[i]-u[i]);
			flag=1;
		}
	}
	if(!flag)printf("NULL");
	return 0;
}
2021/2/7 17:40
加载中...