拓扑排序 hihoCoder1175 拓扑排序·二
来源:互联网 发布:阿里云 物联网 收入 编辑:程序博客网 时间:2024/04/29 02:54
按照拓扑排序的顺序去扩展病毒数量,这样相当于所有节点只走了一遍就出了结果
#include<cstdio>#include<cstring>#include<cstdlib>#include<cmath>#include<vector>#include<queue>#include<algorithm>using namespace std;typedef long long LL;const int mod=142857;const int MX=100000+5;const int INF=0x3f3f3f3f;int vis[MX],A[MX],S[MX];vector<int>G[MX];int main(){ int n,m,k; while(~scanf("%d%d%d",&n,&m,&k)){ memset(A,0,sizeof(A)); memset(vis,0,sizeof(vis)); for(int i=1;i<=n;i++) G[i].clear(); for(int i=1;i<=k;i++){ int x; scanf("%d",&x); S[x]++; } for(int i=1;i<=m;i++){ int u,v; scanf("%d%d",&u,&v); G[u].push_back(v); A[v]++; } int ans=0; queue<int>work; for(int i=1;i<=n;i++){ if(A[i]==0) work.push(i); } while(!work.empty()){ int fp=work.front(); work.pop(); ans=(ans+S[fp])%mod; for(int i=0;i<G[fp].size();i++){ int v=G[fp][i]; S[v]=(S[v]+S[fp])%mod; A[v]--; if(!A[v]) work.push(v); } } printf("%d\n",ans); } return 0;}
0 0
- 拓扑排序 hihoCoder1175 拓扑排序·二
- hihocoder1175(拓扑排序)
- 【HihoCoder】1175 拓扑排序·二 拓扑
- hihocoder 1175 拓扑排序·二(拓扑排序应用)
- 拓扑排序 hihoCcoder1174 拓扑排序·一
- hihoCoder #1175 : 拓扑排序·二
- hihocoder #1175 : 拓扑排序·二
- hihocoder #1175 : 拓扑排序·二
- HiHoCoder_#1175 : 拓扑排序·二
- HIHO #1175 : 拓扑排序·二
- hihocoder 1175 : 拓扑排序·二
- hihocoder 1175 拓扑排序·二
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- 拓扑排序
- JBoss主要版本下载链接一览
- fdisk分区sdcard &开机自动挂载新增硬盘
- Linux系统环境变量PATH(6.29)
- JavaScript基本类型转换,== != === !==总结
- 防火墙与入侵检测知识整理 (一)
- 拓扑排序 hihoCoder1175 拓扑排序·二
- OutLook收件自动存储到指定文件夹
- android通过xutils上传图片。通过apx.net接收问题
- poj1837 Balance
- 优秀文章的链接
- android中控件RadioButton的使用
- start_kernel——boot_init_stack_canary
- Bioinformatics: Sequencing Antibiotics (week 3-4)
- Spring Mvc web.xml中设置了字符编码,中文依旧乱码