hiho一下 第四十八周(拓扑排序的应用)48
来源:互联网 发布:梨园淘宝城图片 编辑:程序博客网 时间:2024/05/17 00:15
///////////////////////////////////////////////////////////////////////////////////////////////////////
作者:tt267
声明:本文遵循以下协议自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0
转载请注明:http://blog.csdn.net/tt2767/article/details/46364717
///////////////////////////////////////////////////////////////////////////////////////////////////////
题目链接:http://hihocoder.com/problemset/problem/1175
队列和栈都能过
#include<iostream>#include<algorithm>#include <iterator>#include<cmath>#include<vector>#include<stack>#include<map>#include<set>#include<staue>#include<functional>#include<stdlib.h>#include<cstring>using namespace std;#define PI acos(-1.0)#define MOD 142857vector<int> Graph[500009];stack<int> sta;int N,M,K,ver;int u,v;int deg[500009] = {0};int vir[500009] = {0};int solve();int main(){ memset(vir,0,sizeof(vir)); memset(deg,0,sizeof(deg)); scanf("%d%d%d",&N,&M,&K); for(int i = 0 ; i < K ; i++) { scanf("%d",&ver); vir[ver]++; } for(int i = 0; i < M ; i++ ) { scanf("%d%d",&u,&v); Graph[u].push_back(v); deg[v]++; } printf("%d\n",solve()); return 0;}int solve(){ int x,Count = 0; for(int i = 0 ; i < N ; i++ ) if(deg[i] == 0) sta.push(i); while(!sta.empty()) { x = sta.top(); sta.pop(); Count += vir[x]; Count %= MOD; for(vector<int>::iterator it = Graph[x].begin() ; it != Graph[x].end() ; it++) { if( !deg[*it] ) continue; deg[*it]--; vir[*it] += vir[x]; vir[*it] %= MOD; if( !deg[*it] ) sta.push(*it); } } return Count;}
0 0
- hiho一下 第四十八周(拓扑排序的应用)48
- hiho一下 第四十八周——拓扑排序二
- hiho一下 第四十七周拓扑排序
- hiho一下 第四十八周题目1 : 拓扑排序·二
- hiho一下 第四十七周(拓扑排序)47
- hiho一下 第四十八周
- hiho一下 第四十七周——拓扑排序
- hiho拓扑排序专题 ——第四十八、四十七周
- hiho一下 第五十八周
- hiho一下 第五十八周
- hiho一下 第八十八周
- hiho一下 第九十八周
- hiho一下 第四十九周(欧拉路的判定)49
- hiho一下 第四十九周
- hihocoder: hiho一下 第八十八周 88
- hiho 47 48 拓扑排序
- 【hiho四十八周】 求最后感染到的病毒总数(拓扑排序模板)
- hiho一下 第二十八周 最小生成树三·堆优化的Prim算法
- Gradle学习系列之七——依赖管理
- nodejs exports和module.exports区别
- C语言内存模型(内存组织方式)
- 回收站的重要文件删了怎么恢复
- 呼和浩特白光药水扑克
- hiho一下 第四十八周(拓扑排序的应用)48
- 简单内存泄漏检测方法 解决 Detected memory leaks! 问题
- 关于Java同步锁中await和signalAll的使用经验
- 【日常学习】【欧拉函数】codevs2296 仪仗队题解
- 撤销myeclipse误删的文件,更改应用名
- WebService到底是什么?
- Gradle学习系列之八——构建多个Project
- taskAffinity属性
- hrbust 1494 tarjan算法求割点模版