HDU 5195 - DZY Loves Topological Sorting
2016-09-14 22:13
369 查看
题意: 删去K条边,使拓扑排序后序列字典序最大分析: 因为我们要求最后的拓扑序列字典序最大,所以一定要贪心地将标号越大的点越早入队。我们定义点i的入度为di。 假设当前还能删去k条边,那么我们一定会把当前还没入队的di≤k的最大的i找出来,把它的di条入边都删掉,然后加入拓扑序列。 删除的一定是小连大的边,因为大连小的边在拓扑序列生成的时候就去掉了
#include <iostream> #include <cstdio> #include <queue> #include <vector> using namespace std; const int MAXN = 100005; int n, m, k, u, v; vector<int> g[MAXN]; int c[MAXN], vis[MAXN], ans[MAXN]; priority_queue<int> s; int main() { while (~scanf("%d%d%d", &n, &m, &k)) { while (!s.empty()) s.pop(); for (int i = 1; i <= n; i++) g[i].clear(), vis[i] = c[i] = 0; for (int i = 1; i <= m; i++) { scanf("%d%d", &u, &v); g[u].push_back(v); c[v]++; } for (int i = 1; i <= n; i++) if (k >= c[i]) s.push(i); int cnt = 0; while (!s.empty()) { int x = s.top(); s.pop(); if (c[x] <= k && !vis[x] ) { vis[x] = 1; k -= c[x], c[x] = 0; ans[cnt++] = x; for (int i = 0; i < g[x].size(); i++) { c[g[x][i]]--; if ( !c[g[x][i]] ) s.push(g[x][i]); } } } for (int i = 0; i < cnt-1; i++) printf("%d ", ans[i]); printf("%d\n", ans[cnt-1]); } }
相关文章推荐
- hdu 5195 DZY Loves Topological Sorting 线段树+拓扑排序
- HDU 5195 DZY Loves Topological Sorting
- HDU 5195 DZY Loves Topological Sorting 拓扑序(贪心)
- hdu 5195 DZY Loves Topological Sorting
- 【HDU】5195-DZY Loves Topological Sorting(拓扑 + 线段树 + 贪心)
- HDU 5195 DZY Loves Topological Sorting(优先队列)
- HDU 5195 DZY Loves Topological Sorting
- HDU 5195 DZY Loves Topological Sorting (拓扑排序+线段树)
- HDU 5195 DZY Loves Topological Sorting 拓扑排序
- hdu 5195 DZY Loves Topological Sorting && BestCoder Round #35
- HDU 5195 DZY Loves Topological Sorting(线段树单点更新)
- HDU 5195 DZY Loves Topological Sorting(线段树)
- hdu 5195 DZY Loves Topological Sorting(线段树)
- hdu 5195 DZY Loves Topological Sorting【拓扑排序+优先队列+邻接表】
- Hdoj 5195 DZY Loves Topological Sorting 【拓扑】+【线段树】
- DZY Loves Topological Sorting (BC #35 hdu 5195 topsort+优先队列)
- BestCoder Round #35(DZY Loves Topological Sorting-堆+贪心)
- (拓扑排序)DZY Loves Topological Sorting
- HDU 5195 DZY Loves Topological Sorting
- [线段树] hdu5195 DZY Loves Topological Sorting