传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1051

保存tarjan模版。

求强联通分量,缩点。

  1. #include <cstdio>
  2. #include <cstring>
  3. #include <set>
  4. #include <algorithm>
  5.  
  6. const int maxn = 10005, maxm = 50005;
  7.  
  8. int n, m, t1, t2;
  9. int top[maxn], dfn[maxn], dfs_clock, scc[maxn], scc_cnt, stk[maxn], top_;
  10. int head1[maxn], to1[maxm], next1[maxm], lb1;
  11. int siz[maxn];
  12. char out[maxn];
  13.  
  14. inline void ist1(int aa, int ss) {
  15. to1[lb1] = ss;
  16. next1[lb1] = head1[aa];
  17. head1[aa] = lb1;
  18. ++lb1;
  19. }
  20. void dfs(int r) {
  21. dfn[r] = top[r] = ++dfs_clock;
  22. stk[top_++] = r;
  23. for (int j = head1[r]; j != -1; j = next1[j]) {
  24. if (!dfn[to1[j]]) {
  25. dfs(to1[j]);
  26. top[r] = std::min(top[r], top[to1[j]]);
  27. }
  28. else if (!scc[to1[j]]) {
  29. top[r] = std::min(top[r], dfn[to1[j]]);
  30. }
  31. }
  32. if (dfn[r] == top[r]) {
  33. ++scc_cnt;
  34. while (stk[top_ - 1] != r) {
  35. scc[stk[top_ - 1]] = scc_cnt;
  36. --top_;
  37. ++siz[scc_cnt];
  38. }
  39. scc[r] = scc_cnt;
  40. --top_;
  41. ++siz[scc_cnt];
  42. }
  43. }
  44.  
  45. int main(void) {
  46. //freopen("in.txt", "r", stdin);
  47. memset(head1, -1, sizeof head1);
  48. memset(next1, -1, sizeof next1);
  49. scanf("%d%d", &n, &m);
  50. while (m--) {
  51. scanf("%d%d", &t1, &t2);
  52. ist1(t1, t2);
  53. }
  54.  
  55. for (int i = 1; i <= n; ++i) {
  56. if (!scc[i]) {
  57. dfs(i);
  58. }
  59. }
  60.  
  61. for (int i = 1; i <= n; ++i) {
  62. for (int j = head1[i]; j != -1; j = next1[j]) {
  63. if (scc[i] != scc[to1[j]]) {
  64. out[scc[i]] = 1;
  65. }
  66. }
  67. }
  68.  
  69. char flag = 0;
  70. int ans = 0;
  71. for (int i = 1; i <= scc_cnt; ++i) {
  72. if (!out[i]) {
  73. if (flag) {
  74. ans = 0;
  75. break;
  76. }
  77. else {
  78. flag = 1;
  79. ans = siz[i];
  80. }
  81. }
  82. }
  83. printf("%d\n", ans);
  84. return 0;
  85. }

  

_bzoj1051 [HAOI2006]受欢迎的牛【强联通】的更多相关文章

  1. [BZOJ1051] [HAOI2006] 受欢迎的牛 (强联通分量)

    Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎. 这 种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A也 ...

  2. bzoj1051: [HAOI2006]受欢迎的牛(强联通)

    1051: [HAOI2006]受欢迎的牛 题目:传送门 题解: 今天又做一道水题... 强联通啊很明显 水个模板之后统计一下每个强联通分量中点的个数,再统计一下出度... 不难发现:缩点之后当且仅当 ...

  3. [BZOJ1051][HAOI2006] 受欢迎的牛 tarjan求联通分量

    1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 5687  Solved: 3016[Submit][Sta ...

  4. 1051: [HAOI2006]受欢迎的牛

    1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2276  Solved: 1190[Submit][Sta ...

  5. 【BZOJ 1051】 1051: [HAOI2006]受欢迎的牛 (SCC)

    1051: [HAOI2006]受欢迎的牛 Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎. 这 种关系是具有传递性的,如 ...

  6. P2341 [HAOI2006]受欢迎的牛(tarjan+缩点)

    P2341 [HAOI2006]受欢迎的牛 题目描述 每头奶牛都梦想成为牛棚里的明星.被所有奶牛喜欢的奶牛就是一头明星奶牛.所有奶 牛都是自恋狂,每头奶牛总是喜欢自己的.奶牛之间的“喜欢”是可以传递的 ...

  7. 洛谷——P2341 [HAOI2006]受欢迎的牛//POJ2186:Popular Cows

    P2341 [HAOI2006]受欢迎的牛/POJ2186:Popular Cows 题目背景 本题测试数据已修复. 题目描述 每头奶牛都梦想成为牛棚里的明星.被所有奶牛喜欢的奶牛就是一头明星奶牛.所 ...

  8. bzoj1051 [HAOI2006]受欢迎的牛

    1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4773  Solved: 2541[Submit][Sta ...

  9. 【BZOJ】1051: [HAOI2006]受欢迎的牛

    [HAOI2006]受欢迎的牛 Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎. 这种关系是具有传递性的,如果A认为B受欢 ...

随机推荐

  1. google官方建议使用的网站性能测试工具

    转自:http://www.laokboke.net/2013/05/12/google-official-recommended-site-performance-testing-tools/ 最近 ...

  2. HDU 5089 Assignment(rmq+二分 或 单调队列)

    Assignment Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total ...

  3. VM Workstation的Unity Mode有什么用

    正常情况下,如果我启动了一个VM Workstaion的虚拟机,比如是一个Linux系统,并且没运行任何软件,进入Unity mode之后,我真实系统的左下角会有一个虚拟机的图标 点击这个图标可以打开 ...

  4. Centos java 安装

    第一步:查看Linux自带的JDK是否已安装 (卸载centOS已安装的1.4) 安装好的CentOS会自带OpenJdk,用命令 java -version ,会有下面的信息: java versi ...

  5. LoadRunner 比较字符串是否相等

    int strcmp ( const char *string1, const char *string2 );大小写敏感.int stricmp ( const char *string1, con ...

  6. 【问题记录】LoadRunner 接口压测-json格式报文

    [问题起因] 前段时间,协助其他项目录制接口压测脚本,对方要求请求报文内容实现参数化. 请求方法如下: 直接在Parameter List中新增一个parameter, 将请求报文放入dat文件中.这 ...

  7. OFbiz实体引擎

    安全可靠的数据存储是数据管理战略的关键业务,OFbiz认真对待数据管理.不把全部繁琐和easy出错的数据管理任务留给应用开发人员.OFbiz在设计和实现阶段非常好的贯彻了这个理念. 实体引擎是数据库无 ...

  8. create-react-app 使用 webpack 打包压缩失败

    问题,正常 npm run build 打包后,发现打包后的文件异常大,有 > 20M 的大小 分析, 1.起初以为是代码本身过大的原因导致的,所以一直在想如何进行代码拆分使得文件能尽可能的小, ...

  9. HDU1251 统计难题 【trie树】

    统计难题 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131070/65535 K (Java/Others) Total Subm ...

  10. CentOS 7.2 源码安装Python3.6

    1.环境 安装CentOS 7.2最小系统(CentOS-7-x86_64-Minimal-1511.iso) 2.需求 Python-3.6.4.tar.xz(官网下载) GCC(yum安装) 一堆 ...