题目链接

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

#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 ;//程序拜拜
}

题解 P2863 【[USACO06JAN]牛的舞会The Cow Prom】的更多相关文章

  1. bzoj1654 / P2863 [USACO06JAN]牛的舞会The Cow Prom

    P2863 [USACO06JAN]牛的舞会The Cow Prom 求点数$>1$的强连通分量数,裸的Tanjan模板. #include<iostream> #include&l ...

  2. P2863 [USACO06JAN]牛的舞会The Cow Prom

    洛谷——P2863 [USACO06JAN]牛的舞会The Cow Prom 题目描述 The N (2 <= N <= 10,000) cows are so excited: it's ...

  3. 【luogu P2863 [USACO06JAN]牛的舞会The Cow Prom】 题解

    题目链接:https://www.luogu.org/problemnew/show/P2863 求强连通分量大小>自己单个点的 #include <stack> #include ...

  4. 洛谷 P2863 [USACO06JAN]牛的舞会The Cow Prom 题解

    每日一题 day11 打卡 Analysis 好久没大Tarjan了,练习练习模板. 只要在Tarjan后扫一遍si数组看是否大于1就好了. #include<iostream> #inc ...

  5. 洛谷——P2863 [USACO06JAN]牛的舞会The Cow Prom

    https://www.luogu.org/problem/show?pid=2863#sub 题目描述 The N (2 <= N <= 10,000) cows are so exci ...

  6. luogu P2863 [USACO06JAN]牛的舞会The Cow Prom |Tarjan

    题目描述 The N (2 <= N <= 10,000) cows are so excited: it's prom night! They are dressed in their ...

  7. 洛谷 P2863 [USACO06JAN]牛的舞会The Cow Prom

    传送门 题目大意:形成一个环的牛可以跳舞,几个环连在一起是个小组,求几个小组. 题解:tarjian缩点后,求缩的点包含的原来的点数大于1的个数. 代码: #include<iostream&g ...

  8. LuoGu P2863 [USACO06JAN]牛的舞会The Cow Prom

    题目传送门 这个题还是个缩点的板子题...... 答案就是size大于1的强连通分量的个数 加一个size来统计就好了 #include <iostream> #include <c ...

  9. 洛谷P2863 [USACO06JAN]牛的舞会The Cow Prom

    代码是粘的,庆幸我还能看懂. #include<iostream> #include<cstdio> #include<cmath> #include<alg ...

  10. 洛谷 P2863 [USACO06JAN]牛的舞会The Cow Prom(Tarjan)

    一道tarjan的模板水题 在这里还是着重解释一下tarjan的代码 #include<iostream> #include<cstdio> #include<algor ...

随机推荐

  1. 查询cad库中,所有程序leg引用的点的id,需要预先处理点表和程序表

    select f1.pro_id,f1.pro_type, f1.code_fix_point, f1.code_type_fix_point, f1.code_fir,f2.code_icao,nv ...

  2. 第十三章 Spring消息(待续)

    ···············

  3. EasyUI应用总结

    1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 pageEncod ...

  4. OSGI 模块化

    推荐教程:https://course.tianmaying.com/osgi-toturial+osgi-concept#15

  5. MVC,MVP 和 MVVM 的详解

    一.MVC MVC模式的意思是,软件可以分成三个部分. 视图(View):用户界面. 控制器(Controller):业务逻辑 模型(Model):数据保存 各部分之间的通信方式如下. View 传送 ...

  6. S3C6410移植u-boot

    1.首先下载u-boot(ftp://ftp.denx.de/pub/u-boot) wget ftp://ftp.denx.de/pub/u-boot/u-boot-latest.tar.bz2 2 ...

  7. 转载--解决ora-00119和ora-00132这个问题

    前提:服务全部打开,监听也配置好了! win7 64位    Oracle 11g 简单的sql命令: 先登录到sqlplus: sqlplus /nolog; 登录数据库: conn system/ ...

  8. Cfree clion windows c语言 socket 网络编程

    server.c #include <stdio.h> #include <winsock2.h> #define SERVER_PORT 5208 //侦听端口 int ma ...

  9. Java 计算两个日期相差的天数

    import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; impor ...

  10. Ubuntu18.04创建新的系统用户

    目标: 1.为测试学习Docker,在虚拟机OS为18.04里,创建一个系统账号,账号名称:docker 2.在/home下有新建username的文件夹 一.建立账号 1.以root账号登录 2.u ...