题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5154

题目意思:有 n 门 processes(编号依次为1,2,...,n),然后给出 m 种关系: a,b。表示 process b 要在 process a 之前完成。问经过 m 种关系之后,有没有可能完成所有的 process。

  可以利用拓扑排序的思想做。遍历所有 process,处理所有入度为 0 的点,然后把与该点关联的点,即度数都减一。这样处理完之后,每个点的度数应该都是-1,否则就代表有环,不能完成所有的process。

 1 #include <iostream>
 2 #include <cstring>
 3 #include <cstdio>
 4 using namespace std;
 5
 6 const int maxn = 100 + 10;
 7 int map[maxn][maxn];
 8 int in[maxn];
 9 int n, m;
10
11 int main()
12 {
13     #ifndef ONLINE_JUDGE
14         freopen("in.txt", "r", stdin);
15     #endif // ONLINE_JUDGE
16     int from, to;
17     while (scanf("%d%d", &n, &m) != EOF) {
18         memset(map, 0, sizeof(map));
19         memset(in, 0, sizeof(in));
20         for (int i = 0; i < m; i++) {
21             scanf("%d%d", &to, &from);
22             if (!map[from][to])
23             {
24                 map[from][to] = 1;
25                 in[to]++;       // 入度
26             }
27         }
28         for (int i = 1; i <= n; i++)
29         {
30             for (int j = 1; j <= n; j++)
31             {
32                 if (!in[j])
33                 {
34                     in[j] = -1;
35                     for (int k = 1; k <= n; k++)
36                     {
37                         if (map[j][k])
38                         {
39                             map[j][k] = 0;
40                             in[k]--;
41                         }
42                     }
43                     break;
44                 }
45             }
46         }
47         bool flag = true;
48         for (int i = 1; i <= n; i++)
49         {
50             if (in[i] != -1)
51             {
52                 flag = false;
53                 break;
54             }
55         }
56         printf("%s\n", flag ? "YES" : "NO");
57     }
58     return 0;
59 }

转载于:https://www.cnblogs.com/windysai/p/4215921.html

BestCoder25 1001.Harry and Magical Computer(hdu 5154) 解题报告相关推荐

  1. hdu 2058 解题报告 - The sum problem

    hdu 2058 解题报告 - The sum problem 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2058 等差求和公式: Sn=(a1+aN ...

  2. BestCoder16 1002.Revenge of LIS II(hdu 5087) 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5087 题目意思:找出第二个最长递增子序列,输出长度.就是说,假如序列为 1 1 2,第二长递增子序列是 ...

  3. BestCoder4 1002 Miaomiao's Geometry (hdu 4932) 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4932 题目意思:给出 n 个点你,需要找出最长的线段来覆盖所有的点.这个最长线段需要满足两个条件:(1 ...

  4. BestCoder15 1002.Instruction(hdu 5083) 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5083 题目意思:如果给出 instruction 就需要输出对应的 16-bit binary cod ...

  5. HDU 1506 解题报告 Largest Rectangle in a Histogram (单调栈)

    看题传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1506 题意比较明显,就是找以某一个矩形为高的最大的矩形.这个题可以用单调栈来求解,需要注意的是如果从 ...

  6. BestCoder3 1002 BestCoder Sequence(hdu 4908) 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4908 题目意思:给出 一个从1~N 的排列你和指定这个排列中的一个中位数m,从这个排列中找出长度为奇数 ...

  7. Fibonacci Tree HDU - 4786——解题报告

    立志用更少的代码做更高效的表达 Coach Pang is interested in Fibonacci numbers while Uncle Yang wants him to do some ...

  8. hdu 1754 解题报告 I Hate It

    I Hate It Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  9. HDU 1870解题报告(愚人节的礼物)

    愚人节的礼物 Time Limit: 1000 MS Memory Limit: 32768 KB 64-bit integer IO format: %I64d , %I64u Java class ...

最新文章

  1. 前端页面可视化设计工具
  2. 在线便携小电视源码 云电视源码
  3. static与线程安全 -摘自网络
  4. [转]综述论文翻译:A Review on Deep Learning Techniques Applied to Semantic Segmentation
  5. 分享最新36款高质量免费英文字体
  6. 职场怪谈:技术面试过了一般HR多久联系?
  7. python还可以这么玩?用Python把视频转换为字符动画(含音频、高清、彩图)【附源码】
  8. Android NDK开发基础
  9. 全景视频的格式转换工具
  10. iOS category内部实现原理
  11. matlab保存pgm图形,pgm格式文件及其在matlab中的读取存储方法(1)
  12. Android笔记-Felix
  13. HCSA-03 Hillstone系统管理员分类、配置文件信息、版本升级、恢复出厂设置、许可证
  14. 屏蔽搜索引擎的无用蜘蛛,减轻服务器压力
  15. Zookeeper 的基本使用
  16. 敏感文件/目录扫描工具 dirsearch
  17. 用Python让你完成一次绝美樱花视觉体验瞬间陷入二次元~
  18. 【咕泡】Java高薪offer冲刺班【诚小七】
  19. ubuntu14.4安装gtx970显卡驱动的艰辛历程
  20. unity3d terrian tree 地形组件 草木石树无法碰撞的解决办法

热门文章

  1. .net后台获取html控件值的2种方法
  2. Android Studio 1.01 + BlueStacks 开发调
  3. AndroidWear开发之HelloWorld篇
  4. Hadoop示例程序手动编译
  5. 贝叶斯定理与贝叶斯估计
  6. Go 永久阻塞的方法
  7. STM32的IIC应用详解1
  8. Jsp-request与requestScope的区别
  9. 汇编:CF(carry flag)标志位
  10. nginx 认证多个客户端的问题