POJ 3687 Labeling Balls(拓扑序列)
大意:n个重量分别为1-n的小球,给定一些小球间的重量关系。 在符合重量关系的前提下,先输出编号小的球。
思路:也是一道很简单的拓扑排序,不过要倒着来,注意一下要判重边。
1 #include <string.h> 2 #include <iostream> 3 using namespace std; 4 5 int Map[210][210], indegree[210], Ans[210]; 6 int n, m, x, y; 7 int i, j; 8 9 void Topo() 10 { 11 for(i = n; i >= 1; i--) 12 { 13 for(j = n; j >= 1; j--) 14 { 15 if(indegree[j] == 0) 16 { 17 indegree[j]--; 18 Ans[j] = i; 19 for(int k = 1; k <= n; k++) 20 { 21 if(Map[j][k] == 1) 22 { 23 indegree[k]--; 24 } 25 } 26 break; 27 } 28 } 29 if(j < 1) 30 { 31 break; 32 } 33 } 34 if(i >= 1) 35 cout << "-1" << endl; 36 else 37 { 38 for(i = 1; i <= n; i++) 39 { 40 if(i < n) 41 { 42 cout << Ans[i] << " "; 43 } 44 else 45 { 46 cout << Ans[i] << endl; 47 } 48 } 49 } 50 } 51 52 void Solve() 53 { 54 int cases; 55 cin >> cases; 56 while(cases--) 57 { 58 memset(Map, 0, sizeof(Map)); 59 memset(indegree, 0, sizeof(indegree)); 60 cin >> n >> m; 61 for(i = 1; i <= m; i++) 62 { 63 cin >> x >> y; 64 if(!Map[y][x]) 65 { 66 Map[y][x] = 1; 67 indegree[x]++; 68 } 69 } 70 Topo(); 71 } 72 } 73 74 int main() 75 { 76 Solve(); 77 78 return 0; 79 }
Labeling Balls
转载于:https://www.cnblogs.com/Silence-AC/p/3534723.html
POJ 3687 Labeling Balls(拓扑序列)相关推荐
- [POJ] 3687 Labeling Balls(拓扑排序)
题目地址:http://poj.org/problem?id=3687 反向建边,即重的球指向轻的球,注意重边,然后拓扑排序.从n-->1循环,即每次从入度为0的球里面选编号大的存(包含输入的逻 ...
- POJ 3687 Labeling Balls
题目链接:https://vjudge.net/problem/POJ-3687 题目大意 有 N 个重量互不相同的球,标记为 1 ~ N,现给定 M 个重量约束条件,将 1 ~ N 单位的重量分配给 ...
- POJ 3687 Labeling Balls【拓扑排序】
题意: 有 n 个球,想要对他们进行编号1..n,知道了一些求的轻重的关系,要求轻的球必须排在重的球之前,如果存在没有冲突的排序方法的话,输出字典序最小的排序方式. 分析: 没考虑重边,WA了N次!! ...
- sdut 2140 有向图中是否存在拓扑序列的判断
Problem Description 给定一个有向图,判断该有向图是否存在一个合法的拓扑序列. 讲解:http://blog.csdn.net/dm_vincent/article/details/ ...
- 数据结构实验之图论十:判断给定图是否存在合法拓扑序列
Description 给定一个有向图,判断该有向图是否存在一个合法的拓扑序列. Input 输入包含多组,每组格式如下. 第一行包含两个整数n,m,分别代表该有向图的顶点数和边数.(n<=10 ...
- nyoj496巡回赛-拓扑排序-拓扑序列
巡回赛 时间限制:1000 ms | 难度:3 描述 N 名拳击手进行了 M 场比赛,每场赛均可分出胜负,赛后对 N 名选手进行排序,对于每名拳手,必须满足该拳手所战胜过的对手全部排在其后才能对该排名 ...
- 图结构练习——判断给定图是否存在合法拓扑序列
题目描述 给定一个有向图,判断该有向图是否存在一个合法的拓扑序列. 输入 输入包含多组,每组格式如下. 第一行包含两个整数n,m,分别代表该有向图的顶点数和边数.(n<=10) 后面m行每行两个 ...
- AcWing 848. 有向图的拓扑序列(拓扑排序模板)
题面链接 https://www.acwing.com/problem/content/850/ 思路 对于一个有向图来说,只有无环有向图才有拓扑序列,也可以说一个无环有向图必然有拓扑序列,但是不唯一 ...
- 有向无环图—拓扑序列
拓扑序列是对有向无环图的节点编号的排序使得满足任意一条边的起点都在终点的前面,例如: 1->2, 3->2 的有向无环图的一个拓扑序列为1,3,2. 任何一个有向无环图都至少有一个拓扑序列 ...
最新文章
- 【C++ 语言】类型转换 ( 转换操作符 | const_cast | static_cast | dynamic_cast | reinterpret_cast | 字符串转换 )
- Linux下MySQL C API简单示例
- STM32F103CUBE学习笔记 一 环境安装
- Ubuntu 中python 升级到3 后apt-get 一直报错
- C++调用matlab编程
- 浅谈session,cookie,sessionStorage,localStorage的区别及应用场景
- Oracle 摘去数据块的面纱
- Delphi使用经验笔记。
- Plan——没有计划不可能越狱
- 如何打印被加密的PDF文件
- 开发中积累的单词800
- 怎么讲bpm文件读入Matlab,bpm Matlab环境下基于期望传播算法的贝叶 类器工 238万源代码下载- www.pudn.com...
- 签租房电子合同必须留意什么地方?
- ADS学习:统计分析——蒙特卡洛分析、良率分析
- 何水无鱼?何山无石?何人无父?何女无夫?何树无枝?何城无市?
- mysql 全局不重复_如何批量生成MySQL不重复手机号大表实例代码
- porphet论文_【读论文】prophet
- xml中处理大于号小于号的方法(Mybatis中大于、小于)
- cs231n作业-assignment1
- SSM拦截器和过滤器结合使用-实现登录拦截操作
热门文章
- NYOJ 527 AC_mm玩dota
- 实验管理系统java,大学生创新实验室信息管理系统 java+mysql
- 如何在sqlserver数据库表中建立复合主键
- 深入浅出,Handler机制外科手术式的剖析(ThreadLocal,Looper,MessageQueen,Message)(上)...
- react报错this.setState is not a function
- 实验吧---隐写术之男神一般都是很低调的!
- sonar做代码检测时如何忽略一些代码文件
- 常用的JavaScript模式
- Win7实用技巧之五库功能妙用
- [Spark][Flume]Flume 启动例子