【NOIP2003 提高组 T1 神经网络】
来源:互联网 发布:ubuntu 安装 ssh 编辑:程序博客网 时间:2024/05/27 00:37
Solution
拓扑。
tips:
1.最后输出要输出c[i]>0的
2.if (c[i]>0) 要在里面判断 不然会少进,WA了无数次
之前就把注释处的写在了循环处。。
for (int i=x;i<y;i++) { for (int j=Head[q[i]];j;j=edge[j].next) { int v=edge[j].v,w=edge[j].w; if (c[q[i]]>0) c[v]+=w*c[q[i]]; //!!! d[v]--; if (!d[v]) q[tail++]=v; } if (!Head[q[i]] && c[q[i]]>0) ans[++num]=q[i]; }
CODE
#include<bits/stdc++.h>using namespace std;const int MAXN=205;int u[MAXN],c[MAXN],q[MAXN],d[MAXN],Head[MAXN],ans[MAXN];int n,m,num,tot,head,tail,x,y,z;struct Edge{ int next,v,w;}edge[MAXN*MAXN];void add_edge(int x,int y,int z){ tot++; d[y]++; edge[tot]=(Edge){Head[x],y,z}; Head[x]=tot;}int main(){ scanf("%d%d",&n,&m); head=tail=0; for (int i=1;i<=n;i++) { scanf("%d%d",&c[i],&u[i]); if (c[i]==0) c[i]-=u[i]; else q[tail++]=i; } for (int i=1;i<=m;i++) scanf("%d%d%d",&x,&y,&z),add_edge(x,y,z); while (head<tail) { int x=head,y=tail; for (int i=x;i<y;i++) { for (int j=Head[q[i]];j;j=edge[j].next) { int v=edge[j].v,w=edge[j].w; if (c[q[i]]>0) c[v]+=w*c[q[i]]; d[v]--; if (!d[v]) q[tail++]=v; } if (!Head[q[i]] && c[q[i]]>0) ans[++num]=q[i]; } head=y; } sort(ans+1,ans+1+num); if (num==0) printf("NULL\n"); else for (int i=1;i<=num;i++) printf("%d %d\n",ans[i],c[ans[i]]); //system("pause"); return 0;}
阅读全文
0 0
- 【NOIP2003 提高组 T1 神经网络】
- NOIP2003提高组之神经网络
- 拓扑排序 [NOIP2003]神经网络 T1
- 洛谷 P1038 [NOIP2003 T1] 神经网络
- NOIP2003 提高组 复赛 network 神经网络
- NOIP2003提高组
- NOIP2003 神经网络
- NOIP2003 神经网络
- NOIP2003 神经网络
- 【NOIP2003】神经网络
- 【NOIP2003提高组】加分二叉树
- NOIP2003提高组 加分二叉树
- 集训-加分二叉树[NOIP2003提高组]
- noip2003神经网络【Pascal】
- NOIP2003神经网络题解
- vijos 1106 & NOIP2003 提高组 侦探推理 题解
- 【NOIP2003提高组T4】传染病控制-DFS剪枝
- 拓扑排序之NOIP2003神经网络
- 第二十五天总结
- 剑指offer_数值的整数次方
- Android Studio下载及安装
- SPV、SPV节点和SPV钱包
- jms message组成和jsm selector详解(二)
- 【NOIP2003 提高组 T1 神经网络】
- 经典词嵌入与神经网络语言模型的对比研究
- 【组合数学】HDU5698[瞬间移动]题解
- listview多条目加载(网络请求)
- 《编程题》来自某游戏公司
- 单例模式
- 二分图最大匹配
- xhsell 快捷键集集锦
- Java并发编程-阻塞队列(BlockingQueue)的实现原理