题目链接

赤裸裸的板子,就加一个特判就行。直接上代码

#include<stdio.h>
#include<algorithm>
#include<iostream>
using namespace std;
bool ins[];//记录入没入栈。
bool typ[];//特判*1,是强连通分量就直接过了。
int top;int ans[];
int stack[];//手写栈。
void push(int x)//手写栈ing.
{
ins[x]=true;
stack[++top]=x;
return ;
}
void pop()
{
ins[stack[top]]=false;
top--;
return ;
}
struct data{
int v;int next;
}edge[];
int cnt;int alist[];
void add(int u,int v)//继续手写结构体。
{
edge[++cnt].v=v;
edge[cnt].next=alist[u];
alist[u]=cnt;
}
int dfn[];int dfu;//dfn作为x的入栈序号。
int low[];int res=;
void dfs(int x)//dfs
{
dfn[x]=++dfu;//记录搜索序号
push (x);
low[x]=dfn[x];
int next=alist[x];
while(next)
{
int v=edge[next].v;
if(ins[v]==true)//被搜过就不用再搜了
{
low[x]=min(low[x],low[v]);
}
else if(ins[v]==false)
{
dfs(v);
low[x]=min(low[x],low[v]);
}
next=edge[next].next;
}
if(dfn[x]==low[x])//如果搜回来了。
{
while(low[stack[top]]==low[x])
{
typ[stack[top]]=true;
pop();
ans[x]++;
}
if(ans[x]>) res++;//想要转圈的话必须要两个人及以上。
}
return;
}
int n,m;
int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=m;i++)
{
int n1,m1;
scanf("%d%d",&n1,&m1);//不解释。
add(n1,m1);
}
for(int i=;i<=n;i++)
{
if(typ[i]==) continue;//要是在扫过的强连通分量里面直接过。
else dfs(i);
}
printf("%d",res);
return ;//程序拜拜
}

最新文章

  1. [入门级] visual studio 2010 mvc4开发,用ibatis作为数据库访问媒介(一)
  2. 理解 OpenStack Swift (1):OpenStack + 三节点Swift 集群+ HAProxy + UCARP 安装和配置
  3. 【HDU 5858】Hard problem
  4. 留只脚印(DP)
  5. hdu1166 线段树
  6. delphi关闭程序Close,application.Terminate与halt区别
  7. 在windows下添加php的Imagick扩展
  8. Git - Tutorial [Lars Vogel]
  9. [Windows]VS2010如何以管理员权限启动?(转)
  10. Glog
  11. jQuery事件函数bind,live,delegate的区别
  12. BZOJ 3713: [PA2014]Iloczyn( 枚举 )
  13. 高并发环境下全局id生成策略
  14. L2-006 树的遍历 (25 分)
  15. Gradle目录结构详解
  16. hadoop安装笔记
  17. plsql界面/command界面
  18. percona mysql5.7关闭审计功能方法
  19. unshift() 方法将一个或多个元素添加到数组的开头,并返回新数组的长度
  20. &lt;项目管理的决策力&gt;总结梳理

热门文章

  1. 第二章 MySQL的安装与配置(待续)
  2. leetcode796
  3. Delphi 解压缩 ZipForge
  4. Oracle11gR2--SEC_CASE_SENSITIVE_LOGON参数解析
  5. ffmpeg截取一段视频中一段视频
  6. sklearn中的cross_val_score()函数
  7. SpringMVC的控制器接收前端数据的方式
  8. SQL Server2012中的Throw语句尝试 RAISERROR和THROW比较
  9. jQuery+css模拟下拉框模糊搜索的实现
  10. Express+MySQL