强连通 HDU 3639
t个样例
n个点 m条边
求有手帕最多的人
A->B B->C
C 2块 可以传递
先强联通一下 这里的权是强连通分量中有几个点
然后要建一下反图 入度为0的点就有可能是最大的点
#include<stdio.h>
#include<algorithm>
#include<string.h>
#include<stack> using namespace std; #define MAXN 5010
#define MAXN1 30010 int head[MAXN],dfn[MAXN],low[MAXN],pa[MAXN],cou[MAXN],in[MAXN],ans[MAXN],s1[MAXN];
bool vis[MAXN];
int k,num,cnt; struct edg
{
int next,to,fr;
}x[MAXN1]; void add(int u,int v)
{
x[cnt].next=head[u];
x[cnt].fr=u;
x[cnt].to=v;
head[u]=cnt++;
}
stack<int>s; void dfs(int u)
{
dfn[u]=low[u]=k++;
vis[u]=;
s.push(u);
int i;
for(i=head[u];i!=-;i=x[i].next)
{
int t=x[i].to;
if(!dfn[t])
{
dfs(t);
low[u]=min(low[u],low[t]);
}
else if(vis[t])
low[u]=min(low[u],dfn[t]);
}
if(dfn[u]==low[u])
{
num++;
while(!s.empty())
{
int now=s.top();
s.pop();
pa[now]=num;
vis[now]=;
cou[num]++;
if(now==u)break;
}
}
}
int sum;
void dfs1(int u)
{
vis[u]=;
int i;
sum=sum+cou[u];
for(i=head[u];i!=-;i=x[i].next)
{
if(!vis[x[i].to])
dfs1(x[i].to);
}
}
int main()
{
int t,ca;
scanf("%d",&t);
ca=; while(t--)
{
int n,m,i;
scanf("%d%d",&n,&m);
memset(head,-,sizeof(head));
cnt=;
for(i=;i<=m;i++)
{
int a,b;
scanf("%d%d",&a,&b);
add(a,b);
}
num=;
k=;
memset(dfn,,sizeof(dfn));
memset(low,,sizeof(low));
memset(vis,,sizeof(vis));
memset(pa ,,sizeof(pa));
memset(cou,,sizeof(cou));
memset(in, ,sizeof(in));
memset(ans,,sizeof(ans)); for(i=;i<n;i++)
if(!dfn[i])
dfs(i);
int en=cnt;
memset(head,-,sizeof(head));
cnt=;
for(i=;i<en;i++)
{
int u,v;
u=pa[x[i].fr];
v=pa[x[i].to];
if(u!=v)
{
add(v,u);
in[u]++;
}
}
int m1=-;
for(i=;i<=num;i++)
{
if(in[i]==)
{
sum=;
memset(vis,,sizeof(vis));
dfs1(i);
ans[i]=sum;
if(sum>m1)
m1=sum;
}
}
printf("Case %d: %d\n",ca++,m1-);
int c1=; for(i=;i<n;i++)
{
if(ans[pa[i]]==m1)
{
s1[c1++]=i;
}
}
for(i=;i<c1-;i++)
printf("%d ",s1[i]);
printf("%d\n",s1[i]);
} return ;
}
强连通 HDU 3639的更多相关文章
- HDU 3639 Hawk-and-Chicken(强连通分量+缩点)
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/u013480600/article/details/32140501 HDU 3639 Hawk-a ...
- HDU 3639 Hawk-and-Chicken(良好的沟通)
HDU 3639 Hawk-and-Chicken 题目链接 题意:就是在一个有向图上,满足传递关系,比方a->b, b->c,那么c能够得到2的支持,问得到支持最大的是谁,而且输出这些人 ...
- HDU 3639 Hawk-and-Chicken(强连通缩点+反向建图)
http://acm.hdu.edu.cn/showproblem.php?pid=3639 题意: 有一群孩子正在玩老鹰抓小鸡,由于想当老鹰的人不少,孩子们通过投票的方式产生,但是投票有这么一条规则 ...
- HDU 3639 Hawk-and-Chicken (强连通缩点+DFS)
<题目链接> 题目大意: 有一群孩子正在玩老鹰抓小鸡,由于想当老鹰的人不少,孩子们通过投票的方式产生,但是投票有这么一条规则:投票具有传递性,A支持B,B支持C,那么C获得2票(A.B共两 ...
- HDU 3639 Hawk-and-Chicken
Hawk-and-Chicken Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- 强连通 HDU 1827
n个点m条边 n个权lcy 要叫这个人的花费 m条边 缩点后 新的图中 入度为0的点要通知 通知强连通分量中权值最小的 #include<stdio.h> #include<alg ...
- 强连通 HDU 1269
n点m边 求是否能从任意a->b b->a 强连通分量等于1 #include<stdio.h> #include<algorithm> #include<s ...
- HDU 3639 Bone Collector II(01背包第K优解)
Bone Collector II Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- 强连通 HDU 3861
t个样例 n个点m条边 分成一些区 2个点互相能到达必须分在一个区 一个区中任何2个点可以u->v 或者v->u 任何点都要有自己的区 求最小的区的数目 强联通缩点 成新图 二分匹配 求最 ...
随机推荐
- 三维网格形变算法(Gradient-Based Deformation)
将三角网格上的顶点坐标(x,y,z)看作3个独立的标量场,那么网格上每个三角片都存在3个独立的梯度场.该梯度场是网格的微分属性,相当于网格的特征,在形变过程中随控制点集的移动而变化.那么当用户拖拽网格 ...
- AC日记——验证字串 openjudge 1.7 18
18:验证子串 总时间限制: 1000ms 内存限制: 65536kB 描述 输入两个字符串,验证其中一个串是否为另一个串的子串. 输入 输入两个字符串, 每个字符串占一行,长度不超过200且不 ...
- Redis的安装和使用
Redis 安装redis: 将将要安装redis文件夹放到一个盘中 通过命令行切换到放文件的地方 安装成功后,将文件夹中的扩展放入wamp/php/ext中,然后配置php.ini,重启服务器. 使 ...
- BZOJ 2818: Gcd
2818: Gcd Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 4443 Solved: 1960[Submit][Status][Discuss ...
- js 增删改查方法
push() 向数组的末尾添加一个或多个元素 pop() 删除数组内部并返回数组的最后一个元素 shift() 把数组内部的第一个元素从其中删除,并返回第一个元素的值 unshift() 向数组外部的 ...
- (原创)在Exchange 2007 server中使用实时黑名单服务(RBL)过滤垃圾邮件
近一段有同事抱怨公司的邮件系统垃圾邮件非常多,早上上班打开邮箱垃圾邮件竟然有几十封.然后赶紧打开Exchange工具“邮件跟踪”,发现有每隔1到2分钟,邮件系统便会收到来自不同IP的垃圾邮件,由于源I ...
- M3U8格式讲解及实际应用分析
M3U8格式讲解及实际应用分析 M3U8有啥好处 ? 网上搜索了一下,大家众说纷纭,个人理解主要是可以做多码率的适配,根据网络带宽,客户端会选择一个适合自己码率的文件进行播放,保证视频流的流畅. 在I ...
- Linux shell循环
条件测试 格式 test condition 或 [ condition ] 使用方括号时,要注意在条件两边加上空格,如果有操作符,运算符之间也必须有空格 测试状态:测试的结果可以用$?的值来判断,0 ...
- C#执行XSL转换
xsl 可方便的将一种格式的xml,转换成另一种格式的xml,参考下面的代码: using System; using System.IO; using System.Text; using Syst ...
- [JAVA教程] 2016年最新spring4框架搭建视频教程 【尚学堂】
Spring4框架 主讲:邹波 类型:SSH 适合对象:学习完javase.数据库技术.jdbc者 Spring4.0作为一个广泛使用的开源框架,它由Rod Johnson创建.它是为了解决企业应用开 ...