题目


缩完点后统计入读为零的点就可以来。

因为缩完点后肯定是DAG

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<algorithm>
  4. using namespace std;
  5. int dfn[100100],low[100010],tim;
  6. bool instack[100010];
  7. int stack[100010],top,num;
  8. int belong[100010] ;
  9. struct node
  10. {
  11. int point;
  12. int next;
  13. };
  14. node line[100010];
  15. int head[100010],tail;
  16. void add(int x,int y)
  17. {
  18. line[++tail].point=y;
  19. line[tail].next=head[x];
  20. head[x]=tail;
  21. return ;
  22. }
  23. void tarjan(int x)
  24. {
  25. dfn[x]=low[x]=++tim;
  26. stack[++top]=x;
  27. instack[x]=true;
  28. int need=head[x];
  29. while(need)
  30. {
  31. if(!dfn[line[need].point])
  32. {
  33. tarjan(line[need].point);
  34. if(low[line[need].point]<low[x])
  35. low[x]=low[line[need].point];
  36. }
  37. else
  38. if(instack[line[need].point]&&dfn[line[need].point]<low[x])
  39. low[x]=dfn[line[need].point];
  40. need=line[need].next;
  41. }
  42. if(low[x]==dfn[x])
  43. {
  44. num+=1;
  45. do
  46. {
  47. need=stack[top--];
  48. instack[need]=false;
  49. belong[need]=num;
  50. }while(x!=need);
  51. }
  52. }
  53. int ru[100010];
  54. int main()
  55. {
  56. int n;
  57. scanf("%d",&n);
  58. int a;
  59. for(int i=1;i<=n;i++)
  60. {
  61. scanf("%d",&a);
  62. while(a!=0)
  63. {
  64. add(i,a);
  65. scanf("%d",&a);
  66. }
  67. }
  68. int ans=0;
  69. for(int i=1;i<=n;i++)
  70. if(!dfn[i])
  71. tarjan(i);
  72. for(int i=1;i<=n;i++)
  73. {
  74. int need=head[i];
  75. while(need)
  76. {
  77. if(belong[i]!=belong[line[need].point])
  78. ru[belong[line[need].point]]+=1;
  79. need=line[need].next;
  80. }
  81. }
  82. for(int i=1;i<=num;i++)
  83. if(!ru[i])
  84. ans+=1;
  85. printf("%d",ans);
  86. }

tarjan+topsort的更多相关文章

  1. Luogu3119 草鉴定-Tarjan+Topsort

    Solution 简单的$Tarjan$题. 有大佬现成博客 就不写了 → 传送门 Code #include<cstdio> #include<cstring> #inclu ...

  2. 【UVA11324】 The Largest Clique (Tarjan+topsort/记忆化搜索)

    UVA11324 The Largest Clique 题目描述 给你一张有向图 \(G\),求一个结点数最大的结点集,使得该结点集中的任意两个结点 \(u\) 和 \(v\) 满足:要么 \(u\) ...

  3. Tarjan+topsort(DP)【P3387】 [模板]缩点

    Description 给定一个n个点m条边有向图,每个点有一个权值,求一条路径,使路径经过的点权值之和最大.你只需要求出这个权值和. 允许多次经过一条边或者一个点,但是,重复经过的点,权值只计算一次 ...

  4. BZOJ 4304 tarjan+topsort+bitset

    我就是想骗一骗访问量 先Tarjan搞出来所有的强连通分量 正向连边 反向连边 topsort一发  搞出来每个点可以到哪些点 和哪些点可以到这个点 对于每条边 与一下  就是答案 //By Siri ...

  5. 20140708郑州培训第二题Impossible Game

    Impossible Game题目描述你发明了一个简单的单人电脑游戏.在开始游戏时,玩家必须输入一个长度为 K 的字符串,且这个字符串的元素只能为‘A’‘B’‘C’或者‘D’.每一种字符串都代表一种颜 ...

  6. zhizhang错误(每天更新更新)

    做题反思(Think twice ,Code once) 1.2013NOIP转圈游戏,交代码前一定要静态查错,看看代码写得和自己意思一不一样,竟然把变量n写成了常数10,低级错误 2.2013NOI ...

  7. poj 2762

    Tarjan + TopsortTarjan 缩点Topsort 判断 Topsort 判断:在DAG中若初始状态下存在多于1个入度为0的点则说明这些 入度为0的点之间不会有路径可达若不存在入度为0的 ...

  8. POJ 2762 Going from u to v or from v to u?(强联通 + TopSort)

    题目大意: 为了锻炼自己的儿子 Jiajia 和Wind 把自己的儿子带入到一个洞穴内,洞穴有n个房间,洞穴的道路是单向的. 每一次Wind 选择两个房间  x 和 y,   让他的儿子从一个房间走到 ...

  9. poj 3648 2-SAT建图+topsort输出结果

    其实2-SAT类型题目的类型比较明确,基本模型差不多是对于n组对称的点,通过给出的限制条件建图连边,然后通过缩点和判断冲突来解决问题.要注意的是在topsort输出结果的时候,缩点后建图需要反向连边, ...

随机推荐

  1. 转 RMAN-20005: target database name is ambiguous

    发生的这个错误的由于: 在RMAN CATALOG中,register了一个name叫test的数据库,后来这个库被我搞坏了.就重建了一个test的数据库,名称没有更改,又重新register到RMA ...

  2. ECharts基本设置

    theme = { // 全图默认背景 // backgroundColor: ‘rgba(0,0,0,0)’, // 默认色板 color: ['#ff7f50','#87cefa','#da70d ...

  3. Select语句完整的执行顺序

    Select语句完整的执行顺序:1.from子句组装来自不同数据源的数据:2.where子句基于指定的条件对记录行进行筛选:3.group by子句将数据划分为多个分组:4.使用聚集函数进行计算:5. ...

  4. Mybatis学习笔记12 - 动态sql之choose(when otherwise)标签

    choose (when, otherwise):分支选择:带了break的swtich-case 示例代码: 接口定义: package com.mybatis.dao; import com.my ...

  5. 使用ServletContainerInitializer动态注册组件

    1.背景 在web容器(例如tomcat)启动时为提供给第三方组件机会做一些初始化的工作,例如注册servlet或者filtes等.对此servlet规范提供了ServletContainerInit ...

  6. 注册中心eureka

    最近在忙一些其它的事情,两个城市来回跑还要办一些手续,挺费劲的,学习的事情也就耽误了一些,尽量赶吧. spring cloud为分布式的微服务架构提供了一站式的解决方案,eureka注册中心在spri ...

  7. SEO--HTML meta标签总结

    <!DOCTYPE html> <!-- 使用html5 doctype,不区分大小写--> <html lang="zh-CN"> <h ...

  8. 使用dtd--属性声明

    <!ATTLIST 元素名 属性名称 属性类型 属性特点> 1.属性类型 类型 含义 CDATA 纯文本 enumerated 枚举类型 ID 以属性的方式唯一标识改元素,必须以字母开头 ...

  9. SQL链接字符串

    Windows身份验证:  Data Source=.;Initial Catalog=MyItcast;Integrated Security=True 数据库身份验证:      Data Sou ...

  10. Ajax Jq Razor语句

    1.JS刷新当前页面: window.location.reload(); 2.JSon成功后转向其他页面: window.location.href="要转向页面的地址(一般格式:/页面所 ...