BZOJ1051 受欢迎的牛
http://www.lydsy.com/JudgeOnline/problem.php?id=1051
Description
Input
Output
一个数,即有多少头牛被所有的牛认为是受欢迎的。
思路:求原图的强连通分量,缩点重构图,如果新DAG中仅存在1个出度为0的点,那么答案就是该强连通分量的包含的节点数,如果不存在这样的点或存在多个(存在多个说明不会有牛被所有牛欢迎),那么无解,输出0
#include<iostream> #include<cstring> #include<cstdio> #include<vector> using namespace std; ; vector<int> G[maxn],G2[maxn],S; int n,m,vis[maxn],book[maxn],bcc_nodes[maxn],bcc_count,out_edges[maxn]; void init(){ memset(vis,,sizeof(vis)); memset(book,,sizeof(book)); memset(bcc_nodes,,sizeof(bcc_nodes)); memset(out_edges,,sizeof(out_edges)); bcc_count=; } void dfs(int u){ vis[u]=; ;i<G[u].size();i++){ int go=G[u][i]; if(!vis[go]) dfs(go); } S.push_back(u); } void dfs2(int u){ book[u]=bcc_count;bcc_nodes[bcc_count]++; ;i<G2[u].size();i++){ int go=G2[u][i]; if(!book[go]) dfs2(go); } } int main() { scanf("%d %d",&n,&m); init(); ;i<=m;i++){ int a,b;scanf("%d %d",&a,&b); G[a].push_back(b); G2[b].push_back(a); } ;i<=n;i++) if(!vis[i]) dfs(i); ;i>=;i--) if(!book[S[i]]){ ++bcc_count;dfs2(S[i]); } ,ans=; ;i<=n;i++) ;j<G[i].size();j++) if(book[i]!=book[G[i][j]]){ out_edges[book[i]]=;break; } ;i<=bcc_count;i++) if(!out_edges[i]) k++,ans+=bcc_nodes[i]; ) printf("%d",ans); "); ; }
BZOJ1051 受欢迎的牛的更多相关文章
- BZOJ1051:受欢迎的牛(并查集 / Tarjan)
1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 8161 Solved: 4460 Description ...
- p2341&bzoj1051 受欢迎的牛
传送门(洛谷) 传送门(bzoj) 题目 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎. 这 种关系是具有传递性的,如果A认为B受欢迎,B认为C ...
- bzoj1051受欢迎的牛(Tarjan)
1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4776 Solved: 2542 Description ...
- 【bzoj1051】 [HAOI2006]受欢迎的牛 tarjan缩点判出度算点数
[bzoj1051] [HAOI2006]受欢迎的牛 2014年1月8日7450 Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B ...
- 【BZOJ1051】[HAOI2006]受欢迎的牛
[BZOJ1051][HAOI2006]受欢迎的牛 题面 bzoj 洛谷 题解 假如\(A\)喜欢\(B\)就连一条\(A\)到\(B\)的边 然后缩点,如果图不连通就\(Impossible\) 否 ...
- bzoj1051 [HAOI2006]受欢迎的牛
1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4773 Solved: 2541[Submit][Sta ...
- 【BZOJ1051】1051: [HAOI2006]受欢迎的牛 tarjan求强连通分量+缩点
Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎. 这种关系是具有传递性的,如果A认为B受欢迎,B认为C受欢迎,那么牛A也认 ...
- [bzoj1051] [HAOI2006]受欢迎的牛 (Tarjan+缩点)
强连通图,缩点 Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎. 这 种关系是具有传递性的,如果A认为B受欢迎,B认为C受 ...
- 【HAOI2006】【BZOJ1051】【p1233】最受欢迎的牛
BZOJ难得的水题(其实是HA太弱了) 原题: 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B受欢迎. 这 种关系是具有传递性的,如果A认为B受欢迎,B ...
随机推荐
- c++常用的一些库函数、常量和头文件
1.常用数学函数 头文件 #include <math> 或者 #include <math.h> 函数原型 功能 返回值 int abs(int x) 求整数x的绝对值 ...
- 3.函数Function
所谓函数,本质上是一种代码的分组形式.我们可以通过这种形式赋予某组代码一个名字,便于日后重用是调用. function sum(a,b){ var c = a+b; return c; } 1.一个函 ...
- 简单数据访问类,生成简单SQL,自动转换成java对象
import java.util.HashMap; import java.util.List; import java.util.Map; import org.slf4j.Logger; impo ...
- ajax提交后完全不进入action直接返回错误
今天遇到个问题就是jQuery提交ajax请求,居然没有进入action的断点而直接返回错误信息. 仔细排查后才发现原来是因为客户端提交的某字段是100w的值,而后台对应的字段是个Short类型,根本 ...
- centos7安装mysql
centos7安装mysql 1 查找系统是否安装了myql rpm -q mysql mysql-server1.1如果安装了.就删除 sudo yum -y remove mysql mysql- ...
- chkconfig : No such file or directory
sys_version:12.04LTS For example: #chkconfig --level mysql on /sbin/insserv:No such file or director ...
- 为什么选择 Yeoman 及 Yeoman 的安装
今天向您介绍一个我刚接触到的比较新的网络前端开发工具: Yeoman . 什么是Yeoman? Yeoman是Google的团队和外部贡献者团队合作开发的一个项目.通过内部三个工具(yo,grunt, ...
- [ActionScript 3.0] AS3 Socket安全沙箱策略文件
当与一个主机建立一个Socket连接时,Flash Player要遵守如下安全沙箱规则: 1.Flash的.swf文件和主机必须严格的在同一个域名,只有这样才可以成功建立连接: 2.一个从网上发布的. ...
- apache下php无法解析直接显示源代码解
在http.conf中加入php的设置 #php5_start phpIniDir "d:/Program Files/php" LoadModule php5_module &q ...
- Python 描述符(descriptor) 杂记
转自:https://blog.tonyseek.com/post/notes-about-python-descriptor/ Python 引入的“描述符”(descriptor)语法特性真的很黄 ...