LuoGu P2863 [USACO06JAN]牛的舞会The Cow Prom
题目传送门
这个题还是个缩点的板子题......
答案就是size大于1的强连通分量的个数
加一个size来统计就好了
#include <iostream>
#include <cstdlib>
#include <cstdio>
using namespace std;
const int N=1e5+5;
const int M=5e5+5;
struct edge{
int to,next;
}e[M];
int n,m,dfn[N],low[N],cnt,head[N];
int idx[N],s[N],top,tot,sum,siz[N];
bool ins[N];int ind[N],ans;
inline void build(int u,int v){
e[++tot].next=head[u];
head[u]=tot;e[tot].to=v;
return ;
}
inline void tarjan(int cur){
s[++top]=cur;ins[cur]=true;
dfn[cur]=low[cur]=++cnt;
for(int i=head[cur];i;i=e[i].next){
int k=e[i].to;
if(!dfn[k]){
tarjan(k);
low[cur]=min(low[cur],low[k]);
}else if(ins[k]) low[cur]=min(low[cur],dfn[k]);
}
if(low[cur]==dfn[cur]){
register int ss=0;
++sum;
while(s[top+1]!=cur){
++ss;
idx[s[top]]=sum;
ins[s[top--]]=false;
}
siz[sum]=ss;
}
return ;
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=m;++i){
register int u,v;
scanf("%d%d",&u,&v);
build(u,v);
}
for(int i=1;i<=n;++i) if(!dfn[i]) tarjan(i);
for(int i=1;i<=n;++i)
for(int j=head[i];j;j=e[j].next){
int k=e[j].to;
if(idx[i]!=idx[k]) ++ind[idx[k]];
}
for(int i=1;i<=sum;++i) if(!ind[i]&&siz[i]>1) ++ans;
printf("%d\n",ans);
return 0;
}
LuoGu P2863 [USACO06JAN]牛的舞会The Cow Prom的更多相关文章
- 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 ...
- 【luogu P2863 [USACO06JAN]牛的舞会The Cow Prom】 题解
题目链接:https://www.luogu.org/problemnew/show/P2863 求强连通分量大小>自己单个点的 #include <stack> #include ...
- bzoj1654 / P2863 [USACO06JAN]牛的舞会The Cow Prom
P2863 [USACO06JAN]牛的舞会The Cow Prom 求点数$>1$的强连通分量数,裸的Tanjan模板. #include<iostream> #include&l ...
- P2863 [USACO06JAN]牛的舞会The Cow Prom
洛谷——P2863 [USACO06JAN]牛的舞会The Cow Prom 题目描述 The N (2 <= N <= 10,000) cows are so excited: it's ...
- 洛谷——P2863 [USACO06JAN]牛的舞会The Cow Prom
https://www.luogu.org/problem/show?pid=2863#sub 题目描述 The N (2 <= N <= 10,000) cows are so exci ...
- 洛谷 P2863 [USACO06JAN]牛的舞会The Cow Prom
传送门 题目大意:形成一个环的牛可以跳舞,几个环连在一起是个小组,求几个小组. 题解:tarjian缩点后,求缩的点包含的原来的点数大于1的个数. 代码: #include<iostream&g ...
- 洛谷P2863 [USACO06JAN]牛的舞会The Cow Prom
代码是粘的,庆幸我还能看懂. #include<iostream> #include<cstdio> #include<cmath> #include<alg ...
- 洛谷 P2863 [USACO06JAN]牛的舞会The Cow Prom 题解
每日一题 day11 打卡 Analysis 好久没大Tarjan了,练习练习模板. 只要在Tarjan后扫一遍si数组看是否大于1就好了. #include<iostream> #inc ...
- 洛谷 P2863 [USACO06JAN]牛的舞会The Cow Prom(Tarjan)
一道tarjan的模板水题 在这里还是着重解释一下tarjan的代码 #include<iostream> #include<cstdio> #include<algor ...
随机推荐
- 【LDAP】LDAP注入漏洞与防御
0x01 前言 前两天爆了一个LDAP漏洞,据说存在了8年现在才被发现,感概一下,不知这8年来有多少站被搞了... 想着复现这个漏洞,就先复习一下LDAP注入的相关知识吧,差了很多资料,记一下笔记. ...
- 【游戏开发&Unity】捏脸系统(附源码)
本着“没有捏脸系统算什么RPG”的想法,着手做一个2d简易捏脸demo.其实换装游戏都差不多啦~ github代码地址:Simple-Character-Edit-System (Unity版本:5. ...
- 【LeetCode】335. Self Crossing(python)
Problem:You are given an array x of n positive numbers. You start at point (0,0) and moves x[0] metr ...
- 第27月第17天 objc_msgSendSuper
1.objc_msgSendSuper super 的含义,消息转发会调用 objc_msgSendSuper, 就是 去父类的方法列表中找到 initWithFrame:这个方法,然后调用,调用的主 ...
- Maven 那点事儿(转)
0. 前言 Jason Van Zyl,在 Java 十大风云人物排行榜上或许会看到他. 这兄弟是干嘛的? 他就是 Maven 的创始人,人们都尊称他为“Maven 他爸”. 毋庸置疑,Jason 也 ...
- JQuery基本过滤器
- angular vue react web前端三大主流框架的对比
首先,我们先了解什么是MVX框架模式? MVX框架模式:MVC+MVP+MVVM 1.MVC:Model(模型)+View(视图)+controller(控制器),主要是基于分层的目的,让彼此的职责分 ...
- 【tmos】mvn package相关知识点(待补充...)
SpringBoot项目打包跳过测试 <build> <plugins> <plugin> <groupId>org.springframework.b ...
- Android插件化技术简介
https://blog.csdn.net/io_field/article/details/79084630 可以通过反射 事先定义统一接口的方式,访问插件中的类和方法 还可以在AndroidMan ...
- ajax传递数组,后台更新
js: var rows = $("#stu_reg_table").datagrid("getSelections"); if(rows != "& ...