poj 2186 Popular Cows
Time Limit: 2000MS | Memory Limit: 65536K | |
Total Submissions: 29908 | Accepted: 12131 |
Description
popular, even if this is not explicitly specified by an ordered pair in the input. Your task is to compute the number of cows that are considered popular by every other cow.
Input
* Lines 2..1+M: Two space-separated numbers A and B, meaning that A thinks B is popular.
Output
Sample Input
Sample Output
Hint
Source
题解
tarjan一直没学会,今天写了道入门题。主要思路是用tarjan()求出强连通分量,记录每一个强连通分量的出度,出度为0的就是大家都认可的popular cow。在数组问题上卡了很久,后来发现u[i],v[i]要开5*10100才ac。
15701878
ksq2013 | 2186 | Accepted | 1304K | 94MS | C++ | 1969B | 2016-07-11 13:36:28 |
#include<cstdio>
#include<cstring>
#include<iostream>
#define M 10100
using namespace std;
int n,m,u[M*],v[M*],first[M*],mnext[M*],ans[M],outdu[M];
int dfs_clock,scc_cnt,stack_count,my_stack[M*],pre[M],sccno[M],lowlink[M];
void Init()
{
memset(first,-,sizeof(first));
memset(mnext,,sizeof(mnext));
memset(my_stack,,sizeof(my_stack));
memset(lowlink,,sizeof(lowlink));
memset(sccno,,sizeof(sccno));
memset(pre,,sizeof(pre));
memset(ans,,sizeof(ans));
memset(outdu,,sizeof(outdu));
}
void Link()
{
for(int i=;i<=m;i++){
scanf("%d%d",&u[i],&v[i]);
mnext[i]=first[u[i]];
first[u[i]]=i;
}
}
void dfs(int ux)
{
pre[ux]=lowlink[ux]=++dfs_clock;
my_stack[++stack_count]=ux;
int vx;
for(int i=first[ux];i!=-;i=mnext[i]){
vx=v[i];
if(!pre[vx]){
dfs(vx);
lowlink[ux]=min(lowlink[ux],lowlink[vx]);
}
else if(!sccno[vx])
lowlink[ux]=min(lowlink[ux],pre[vx]);
}
if(lowlink[ux]==pre[ux]){
scc_cnt++;
int tmp=;
do{
tmp++;
vx=my_stack[stack_count--];
sccno[vx]=scc_cnt;
}while(vx!=ux);
ans[scc_cnt]=tmp;
}
}
void Tarjan()
{
dfs_clock=scc_cnt=stack_count=;
for(int i=;i<=n;i++)
if(!pre[i])dfs(i);
}
int main()
{
while(~scanf("%d%d",&n,&m)){
Init();
Link();
Tarjan();
if(scc_cnt==){
printf("%d\n",n);
continue;
}
for(int i=;i<=n;i++){
for(int j=first[i];j!=-;j=mnext[j]){
int vx=v[j];
if(sccno[i]!=sccno[vx])
outdu[sccno[i]]++;
}
}
int res=;
for(int i=;i<=scc_cnt;i++)
if(!outdu[i]){
if(!res)res=ans[i];
else {res=;break;}
}
printf("%d\n",res);
}
return ;
}
poj 2186 Popular Cows的更多相关文章
- 强连通分量分解 Kosaraju算法 (poj 2186 Popular Cows)
poj 2186 Popular Cows 题意: 有N头牛, 给出M对关系, 如(1,2)代表1欢迎2, 关系是单向的且能够传递, 即1欢迎2不代表2欢迎1, 可是假设2也欢迎3那么1也欢迎3. 求 ...
- poj 2186 Popular Cows (强连通分量+缩点)
http://poj.org/problem?id=2186 Popular Cows Time Limit: 2000MS Memory Limit: 65536K Total Submissi ...
- POJ 2186 Popular Cows (强联通)
id=2186">http://poj.org/problem? id=2186 Popular Cows Time Limit: 2000MS Memory Limit: 655 ...
- poj 2186 Popular Cows 【强连通分量Tarjan算法 + 树问题】
题目地址:http://poj.org/problem?id=2186 Popular Cows Time Limit: 2000MS Memory Limit: 65536K Total Sub ...
- tarjan缩点练习 洛谷P3387 【模板】缩点+poj 2186 Popular Cows
缩点练习 洛谷 P3387 [模板]缩点 缩点 解题思路: 都说是模板了...先缩点把有环图转换成DAG 然后拓扑排序即可 #include <bits/stdc++.h> using n ...
- POJ 2186 Popular Cows(Targin缩点)
传送门 Popular Cows Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 31808 Accepted: 1292 ...
- [强连通分量] POJ 2186 Popular Cows
Popular Cows Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 31815 Accepted: 12927 De ...
- POJ 2186 Popular Cows(强连通)
Popular Cows Time Limit: 2000MS Memo ...
- poj 2186 Popular Cows【tarjan求scc个数&&缩点】【求一个图中可以到达其余所有任意点的点的个数】
Popular Cows Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 27698 Accepted: 11148 De ...
随机推荐
- SharePoint 2013 Error - TypeError: Unable to get property 'replace' of undefined or null reference
错误信息 TypeError: Unable to get property ‘replace’ of undefined or null referenceTypeError: Unable to ...
- 首届Autodesk编程马拉松(Hackathon)开始报名啦 -- 6.14~15 上海
欢迎报名参加Autodesk 首届编程马拉松 ( Hackathon ) 活动 首届Autodesk编程马拉松(Hackathon)活动即将在Autodesk公司中国研究院(上海)举办.本次编程马 ...
- Linux中的硬链接和软链接
软链接和硬链接 命令ln ln是创建链接的命令: 创建硬链接:ln file link 创建软链接:ln -s file link 硬链接 硬链接(hard link)是Unix系统最早的创建链接的方 ...
- word第一讲(0723)
工作区导航 F6键:从程序窗口中的一个任务窗格移动到另一个任务窗格.(在菜单栏.工作区.状态栏切换) alt键选中选项卡.左右键切换选项卡.下光标切换到选项卡里具体内容. 设置版面 页面布局-> ...
- 新萝卜家园GHOST WIN7系统32,64位极速装机特别版
系统来自:系统妈:http://www.xitongma.com 新萝卜家园GHOST win7系统32位极速装机特别版 V2016年3月 系统概述 新萝卜家园ghost win7系统32位极速装机特 ...
- iOS 学习 - 14.本地联系人
苹果在iOS9的SDK中废除了AddressBookUI.framework的一些功能(是不是这个库都废除了,有待验证),具体和保存联系人相关的几个系统界面如下:联系人选择:AddressBookUI ...
- Sql server profiler抓出的语句不可信
Sql profiler抓出的语句不可信
- 同步时间linux
针对对时间要求精确度高的服务器 1.安装时间服务器yum install ntp 2.同步时间ntpdate time.nist.gov 3.设置计划任务每隔10分钟同步一次 */10 * * * * ...
- yii2搭建完美后台并实现rbac权限控制案例教程
作者:白狼 出处:www.manks.top/article/yii2_frame_rbac_template 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连 ...
- Windows Phone 8.0 SDK Update(10322) Released
昨天微软低调发布了WP 8 SDK的更新,甚至在Windows Phone Developer Blog上都没有提及. 从开发者的角度来看,此次更新的确没有太多需要关注的地方,因为没有添加新的API和 ...