【拓扑序】P1038 神经网络
发布日期:2021-05-06 16:51:17 浏览次数:23 分类:技术文章

本文共 842 字,大约阅读时间需要 2 分钟。

先从入度为0的点开始,进行拓扑序列的计算,由于这个公式中的U(阈值)没有参与到乘法的部分,可以直接移项到左侧,进行计算就可以了,最后,输出出度为0的点的信息

 

代码

#include
using namespace std;const pair
PII;const int maxn=50000+5;const int inf=0x3f3f3f3f;int n,m,tot,in[maxn],out[maxn],head[maxn],c[maxn];struct edge{ int to,nxt,v;}e[maxn<<1];void add(int x,int y,int z){ e[++tot].nxt=head[x]; head[x]=tot; e[tot].to=y; e[tot].v=z;}queue
que;void toposort(){ for(int i=1;i
0) c[to]+=c[u]*e[i].v; if(!in[to]) que.push(to); } }}int main(){ scanf("%d%d",&n,&m); int u,a,b,cc; for(int i=1;i<=n;i++) { scanf("%d%d",&c[i],&u); if(!c[i]) c[i]-=u; } for(int i=1;i<=m;i++) { scanf("%d%d%d",&a,&b,&cc); add(a,b,cc); in[b]++; out[a]++; } toposort(); int flag=0; for(int i=1;i<=n;i++) { if(c[i]>0 && !out[i]) printf("%d %d\n",i,c[i]),flag=1; } if(!flag) printf("NULL"); return 0;}

 

上一篇:【分层图最短路】P4568 [JLOI2011]飞行路线
下一篇:【最短路】P3008 [USACO11JAN]Roads and Planes G

发表评论

最新留言

很好
[***.229.124.182]2025年03月12日 20时14分41秒