记录编号 | 405389 | 评测结果 | AAAAAAA | ||
---|---|---|---|---|---|
题目名称 | [NOIP 2003]神经网络 | 最终得分 | 100 | ||
用户昵称 | 是否通过 | 通过 | |||
代码语言 | C++ | 运行时间 | 0.000 s | ||
提交时间 | 2017-05-16 19:34:10 | 内存使用 | 0.00 MiB | ||
#include<iostream> #include<cstdio> #include<cctype> #include<queue> #include<vector> using namespace std; const int maxn=201; int n,p; struct nodes{int c,u,in,out;}a[maxn]; struct lines{int t,w;}; vector<lines> g[maxn]; queue<int> q; bool inq[maxn]; inline void in(int &x){ x=0;int f=1;char t=getchar(); while(!isdigit(t)){if(t=='-')f=-1;t=getchar();} while(isdigit(t)){x=x*10+t-48;t=getchar();} x*=f; } inline void input(){ in(n);in(p); /* for(int i=1;i<=n;i++){ a[i].in=0;a[i].out=0; } */ for(int i=1;i<=n;i++){ nodes uc;int ui,ci; in(ci);in(ui); uc.c=ci;uc.u=ui;uc.in=0;uc.out=0; a[i]=uc; } for(int i=1;i<=p;i++){ lines tw;int fi,ti,wi; in(fi);in(ti);in(wi); tw.t=ti;tw.w=wi; g[fi].push_back(tw); a[fi].out++;a[ti].in++; } } inline void bfs(){ for(int i=1;i<=n;i++){ if((!a[i].in)&&(a[i].c>0)){ q.push(i);inq[i]=1; } } while(!q.empty()){ int now=q.front();q.pop();inq[now]=0; if(a[now].c>0) for(int i=0;i<g[now].size();i++){ a[g[now][i].t].c+=g[now][i].w*a[now].c; a[g[now][i].t].in--; if(!a[g[now][i].t].in){ a[g[now][i].t].c-=a[g[now][i].t].u; q.push(g[now][i].t); inq[g[now][i].t]=1; } } } } inline void output(){ int flag=1; for(int i=1;i<=n;i++){ if(!a[i].out&&a[i].c>0){ printf("%d %d\n",i,a[i].c); if(flag) flag=0; } } if(flag) printf("NULL"); } inline int mian(){ freopen("sjwl.in","r",stdin); freopen("sjwl.out","w",stdout); input(); bfs(); output(); } int miku=mian(); int main(){;}