UVa 10765 鸽子和炸弹(割点)
2024-08-25 07:16:23
https://vjudge.net/problem/UVA-10765
题意:
给一个n个点的无向图,求每个点删去后形成的连通分量数。
思路:
判断割点,如果是割点的话,在dfs的时候计算出删去它后所形成的连通分量数。
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<vector>
#include<stack>
#include<queue>
#include<cmath>
#include<map>
using namespace std; const int maxn=1e4+; struct node
{
int id;
int ge;
}d[maxn]; int n,m;
int pre[maxn],cut[maxn],low[maxn];
int degree[maxn];
int dfs_block;
vector<int> G[maxn]; int dfs(int u,int fa)
{
int lowu=pre[u]=++dfs_block;
int child=;
for(int i=;i<G[u].size();i++)
{
int v=G[u][i];
if(!pre[v])
{
child++;
int lowv=dfs(v,u);
lowu=min(lowu,lowv);
if(lowv>=pre[u])
{
cut[u]++;
}
}
else if(pre[v]<pre[u] && v!=fa)
lowu=min(lowu,pre[v]);
}
if(fa < && child==) cut[u]=;
low[u]=lowu;
return lowu;
} bool cmp(node a,node b)
{
return a.ge>b.ge||(a.ge==b.ge&&a.id<b.id);
} int main()
{
//freopen("D:\\input.txt","r",stdin);
while(~scanf("%d%d",&n,&m)&& n && m)
{
for(int i=;i<n;i++) {G[i].clear();cut[i]=;}
int u,v;
while(true)
{
scanf("%d%d",&u,&v);
if(u==- && v==-) break;
G[u].push_back(v);
G[v].push_back(u);
}
memset(pre,,sizeof(pre));
memset(low,,sizeof(low));
dfs(,-);
for(int i=;i<n;i++)
{
d[i].id=i;
d[i].ge=cut[i];
}
sort(d,d+n,cmp);
for(int i=;i<m;i++)
printf("%d %d\n",d[i].id,d[i].ge);
printf("\n");
}
return ;
}
最新文章
- PHP中include引用导致不能再次相对引用文件的一个小问题
- linux查看父子进程
- 踩到一个Emit的坑,留个纪念
- jquery消息提示框
- C#全屏随机位置显示图片的小程序
- HDU 5638 Toposort 线段树+贪心
- Static Classes and Static Class Members
- (原)vs2013编译boost1.60库
- 关于echarts
- web移动端开发技巧
- 记录 制作校园网登陆脚本 python编写 附源码
- 虚拟机设置固定ip可以使shell远程连接到服务器
- PyCharm中 Django1.11配置Mysql数据库
- Ubuntu 安装 hadoop
- AtCoder Regular Contest 066 F Contest with Drinks Hard
- poj 2485 求最小生成树中 最长的一条边
- IMAP协议命令(详细)
- mysql优化概述4
- 池建强 博客 Mac使用技巧 第一季
- 【转】如何使用BehaviorSDK
热门文章
- php中var_dump、var_export和print_r的用法区别
- element自定义表单验证
- Google发布机器学习术语表 (包括简体中文)
- LeetCode_Search in Rotated Sorted Array
- 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活--hdu2191(多重背包模板)
- HDFS租约机制
- OpenCV膨胀与腐蚀
- TensorFlow学习笔记(三)MNIST数字识别问题
- 打开关闭oracle自动表分析
- Does Daemon Thread Exit with Main Thread?