_bzoj1051 [HAOI2006]受欢迎的牛【强联通】
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1051
保存tarjan模版。
求强联通分量,缩点。
- #include <cstdio>
- #include <cstring>
- #include <set>
- #include <algorithm>
- const int maxn = 10005, maxm = 50005;
- int n, m, t1, t2;
- int top[maxn], dfn[maxn], dfs_clock, scc[maxn], scc_cnt, stk[maxn], top_;
- int head1[maxn], to1[maxm], next1[maxm], lb1;
- int siz[maxn];
- char out[maxn];
- inline void ist1(int aa, int ss) {
- to1[lb1] = ss;
- next1[lb1] = head1[aa];
- head1[aa] = lb1;
- ++lb1;
- }
- void dfs(int r) {
- dfn[r] = top[r] = ++dfs_clock;
- stk[top_++] = r;
- for (int j = head1[r]; j != -1; j = next1[j]) {
- if (!dfn[to1[j]]) {
- dfs(to1[j]);
- top[r] = std::min(top[r], top[to1[j]]);
- }
- else if (!scc[to1[j]]) {
- top[r] = std::min(top[r], dfn[to1[j]]);
- }
- }
- if (dfn[r] == top[r]) {
- ++scc_cnt;
- while (stk[top_ - 1] != r) {
- scc[stk[top_ - 1]] = scc_cnt;
- --top_;
- ++siz[scc_cnt];
- }
- scc[r] = scc_cnt;
- --top_;
- ++siz[scc_cnt];
- }
- }
- int main(void) {
- //freopen("in.txt", "r", stdin);
- memset(head1, -1, sizeof head1);
- memset(next1, -1, sizeof next1);
- scanf("%d%d", &n, &m);
- while (m--) {
- scanf("%d%d", &t1, &t2);
- ist1(t1, t2);
- }
- for (int i = 1; i <= n; ++i) {
- if (!scc[i]) {
- dfs(i);
- }
- }
- for (int i = 1; i <= n; ++i) {
- for (int j = head1[i]; j != -1; j = next1[j]) {
- if (scc[i] != scc[to1[j]]) {
- out[scc[i]] = 1;
- }
- }
- }
- char flag = 0;
- int ans = 0;
- for (int i = 1; i <= scc_cnt; ++i) {
- if (!out[i]) {
- if (flag) {
- ans = 0;
- break;
- }
- else {
- flag = 1;
- ans = siz[i];
- }
- }
- }
- printf("%d\n", ans);
- return 0;
- }
_bzoj1051 [HAOI2006]受欢迎的牛【强联通】的更多相关文章
- [BZOJ1051] [HAOI2006] 受欢迎的牛 (强联通分量)
Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎. 这 种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A也 ...
- bzoj1051: [HAOI2006]受欢迎的牛(强联通)
1051: [HAOI2006]受欢迎的牛 题目:传送门 题解: 今天又做一道水题... 强联通啊很明显 水个模板之后统计一下每个强联通分量中点的个数,再统计一下出度... 不难发现:缩点之后当且仅当 ...
- [BZOJ1051][HAOI2006] 受欢迎的牛 tarjan求联通分量
1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 5687 Solved: 3016[Submit][Sta ...
- 1051: [HAOI2006]受欢迎的牛
1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2276 Solved: 1190[Submit][Sta ...
- 【BZOJ 1051】 1051: [HAOI2006]受欢迎的牛 (SCC)
1051: [HAOI2006]受欢迎的牛 Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎. 这 种关系是具有传递性的,如 ...
- P2341 [HAOI2006]受欢迎的牛(tarjan+缩点)
P2341 [HAOI2006]受欢迎的牛 题目描述 每头奶牛都梦想成为牛棚里的明星.被所有奶牛喜欢的奶牛就是一头明星奶牛.所有奶 牛都是自恋狂,每头奶牛总是喜欢自己的.奶牛之间的“喜欢”是可以传递的 ...
- 洛谷——P2341 [HAOI2006]受欢迎的牛//POJ2186:Popular Cows
P2341 [HAOI2006]受欢迎的牛/POJ2186:Popular Cows 题目背景 本题测试数据已修复. 题目描述 每头奶牛都梦想成为牛棚里的明星.被所有奶牛喜欢的奶牛就是一头明星奶牛.所 ...
- bzoj1051 [HAOI2006]受欢迎的牛
1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4773 Solved: 2541[Submit][Sta ...
- 【BZOJ】1051: [HAOI2006]受欢迎的牛
[HAOI2006]受欢迎的牛 Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎. 这种关系是具有传递性的,如果A认为B受欢 ...
随机推荐
- google官方建议使用的网站性能测试工具
转自:http://www.laokboke.net/2013/05/12/google-official-recommended-site-performance-testing-tools/ 最近 ...
- HDU 5089 Assignment(rmq+二分 或 单调队列)
Assignment Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total ...
- VM Workstation的Unity Mode有什么用
正常情况下,如果我启动了一个VM Workstaion的虚拟机,比如是一个Linux系统,并且没运行任何软件,进入Unity mode之后,我真实系统的左下角会有一个虚拟机的图标 点击这个图标可以打开 ...
- Centos java 安装
第一步:查看Linux自带的JDK是否已安装 (卸载centOS已安装的1.4) 安装好的CentOS会自带OpenJdk,用命令 java -version ,会有下面的信息: java versi ...
- LoadRunner 比较字符串是否相等
int strcmp ( const char *string1, const char *string2 );大小写敏感.int stricmp ( const char *string1, con ...
- 【问题记录】LoadRunner 接口压测-json格式报文
[问题起因] 前段时间,协助其他项目录制接口压测脚本,对方要求请求报文内容实现参数化. 请求方法如下: 直接在Parameter List中新增一个parameter, 将请求报文放入dat文件中.这 ...
- OFbiz实体引擎
安全可靠的数据存储是数据管理战略的关键业务,OFbiz认真对待数据管理.不把全部繁琐和easy出错的数据管理任务留给应用开发人员.OFbiz在设计和实现阶段非常好的贯彻了这个理念. 实体引擎是数据库无 ...
- create-react-app 使用 webpack 打包压缩失败
问题,正常 npm run build 打包后,发现打包后的文件异常大,有 > 20M 的大小 分析, 1.起初以为是代码本身过大的原因导致的,所以一直在想如何进行代码拆分使得文件能尽可能的小, ...
- HDU1251 统计难题 【trie树】
统计难题 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others) Total Subm ...
- 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安装) 一堆 ...