HDU 2647 Reward(拓扑排序)
来源:互联网 发布:刺客信条4优化方案 编辑:程序博客网 时间:2024/04/19 16:13
题目链接:
HDU 2647 Reward
题意:
有
数据范围:
分析;
把队列中的每个元素设有两个属性(
#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <algorithm>#include <climits>#include <cmath>#include <ctime>#include <cassert>#include <vector>#include <queue>#define IOS ios_base::sync_with_stdio(0); cin.tie(0);using namespace std;typedef long long ll;const int MAX_N = 10010;vector<int> vec[MAX_N];queue<pair<int, int > > que;int degree[MAX_N];void TopoSort(int n, int m){ while(!que.empty()) que.pop(); ll ans = 0; for(int i = 1; i <= n; ++i) { if(degree[i] == 0) { que.push(make_pair(i, 888)); } } while(!que.empty()) { pair<int, int> cur = que.front(); que.pop(); int u = cur.first, w = cur.second; ans += w; for(int i = 0; i < vec[u].size(); ++i) { int to = vec[u][i]; degree[to]--; if(degree[to] == 0) { que.push(make_pair(to, w + 1)); } } } for(int i = 1; i <= n; ++i) { if(degree[i]) { ans = -1; break; } } printf("%lld\n", ans);}int main(){ int n, m; while(~scanf("%d%d", &n, &m)) { memset(degree, 0, sizeof(degree)); for(int i = 1; i <= n; ++i) vec[i].clear(); for(int i = 0; i < m; ++i) { int u, v; scanf("%d%d", &u, &v); degree[u]++; vec[v].push_back(u); } TopoSort(n, m); } return 0;}
0 0
- HDU 2647 Reward(拓扑排序)
- hdu 2647 Reward (拓扑排序)
- hdu 2647 Reward ( 拓扑排序 )
- HDU 2647 - Reward(拓扑排序)
- hdu 2647 Reward (拓扑排序)
- HDU 2647Reward(拓扑排序)
- HDU 2647 Reward(图论-拓扑排序)
- HDU 2647 Reward(图论-拓扑排序)
- HDU 2647 Reward(拓扑排序)
- HDU 2647 -- Reward (拓扑排序)
- hdu 2647 Reward(拓扑排序)
- HDU-2647 Reward(拓扑排序)
- HDU 2647Reward (拓扑排序)
- HDU 2647 Reward(拓扑排序)
- HDU 2647 Reward(拓扑排序)
- HDU 2647 Reward(拓扑排序)
- HDU 2647 Reward (拓扑排序)
- HDU 2647 Reward(拓扑排序)
- mysql清空表数据后让自增ID仍从空位开始的方法
- java this关键字在父子类构造方法中的运用
- jsp之文件的上传和下载
- Add Two Numbers
- 做好这些面试准备,你还担心什么?
- HDU 2647 Reward(拓扑排序)
- Java - PAT - L1-025. 正整数A+B (天梯赛决赛题目)
- STL空间配置器
- [概率dp] poj 3071 Football
- EJS.Helpers进阶
- istringstream用法
- 树莓派3b(ubuntu16.04)使用MCP2515
- 121. Best Time to Buy and Sell Stock--LeetCode Record
- 算法导论第18章 18-1