LOJ-10100(割点个数)
题目链接:传送门
思路:
就是求割点的个数,直接Tarjan算法就行。
注意输入格式(判断比较水)。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
#include<string>
#include<stack>
#include<algorithm>
using namespace std;
const int maxn = ;
int num[maxn],low[maxn],vis[maxn],gedian[maxn],tim,cnt,root;
vector <int> vc[maxn];
int MIN(int x,int y)
{
return x<y?x:y;
}
void Init()
{
memset(num,,sizeof(num));
memset(low,,sizeof(low));
memset(vis,,sizeof(vis));
memset(gedian,,sizeof(gedian));
for(int i=;i<maxn;i++) vc[i].clear();
tim=;cnt=;
}
void Tarjan(int u,int pre)
{
low[u]=num[u]=++tim;
vis[u]=;
int v,i,tt=;
for(i=;i<vc[u].size();i++){
v=vc[u][i];
if(!vis[v]){
tt++;
Tarjan(v,u);
low[u]=MIN(low[u],low[v]);
if((u==root&&tt>)||(u!=root&&num[u]<=low[v])) gedian[u]=;
}
else low[u]=MIN(low[u],num[v]);
}
}
int main(void)
{
int n,m,i,j,x,y;
char ch;
string str;
while(~scanf("%d",&n)&&n){
Init();
int c1=,c2;
while(scanf("%d",&x)&&x){
if(c1>=n) break;c1++;
c2=;
while(){
c2++;
scanf("%d",&y);
vc[x].push_back(y);
vc[y].push_back(x);
if(c2>=n) break;
ch=getchar();
if(ch=='\n') break;
}
} for(i=;i<=n;i++)
if(vis[i]==){
root=i;
Tarjan(i,-);
}
for(i=;i<=n;i++)
if(gedian[i]==) cnt++;
printf("%d\n",cnt);
}
return ;
}
LOJ-10100(割点个数)的更多相关文章
- POJ1144Network(求割点个数)
题目链接 题意:一共n割点,然后若干行,每行第一个输入一个点,然后若干个点表示与他相连,0单独一行表示一个样例的结束.然后求图中的割点个数 割点:去掉该点之后得到的图不在连通,那么该店就是割点 一般割 ...
- UVA-315 无向图求割点个数
题意抽象: 给定一个无向图,输出割点个数. 割点定义:删除该点后,原图变为多个连通块. 考虑一下怎么利用tarjan判定割点: 对于点u和他相连的当时还未搜到的点v,dfs后如果DFN[u]<= ...
- 蓝桥杯历届试题 危险系数(dfs或者并查集求无向图关于两点的割点个数)
Description 抗日战争时期,冀中平原的地道战曾发挥重要作用. 地道的多个站点间有通道连接,形成了庞大的网络.但也有隐患,当敌人发现了某个站点后,其它站点间可能因此会失去联系. 我们来定义一个 ...
- loj 1063(求割点个数)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26780 思路:判断一个点是否是割点的两个条件:1.如果一个点v是根 ...
- POJ 1144 Network(tarjan 求割点个数)
Network Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 17016 Accepted: 7635 Descript ...
- poj 1144(求割点个数)
题目链接:http://poj.org/problem?id=1144 思路:判断一个点是否是割点的两个条件:1.如果一个点v是根结点并且它的子女个数大于等于2,则v是割点.2.如果点v不是根结点,并 ...
- UVA 315 315 - Network(求割点个数)
Network A Telephone Line Company (TLC) is establishing a new telephone cable network. They are con ...
- 【BZOJ】2730: [HNOI2012]矿场搭建【Tarjan找割点】【分联通块割点个数】
2730: [HNOI2012]矿场搭建 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 3230 Solved: 1540[Submit][Stat ...
- HDU2485Destroying the bus stations 拆点网络流求割点个数
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2485 题目要求:删除最少的点,使得源点到汇点的距离大于k 思路:拆点.建图求费用小于等于k的最大流 # ...
随机推荐
- k8s学习笔记之四:资源清单定义入门
第一章.k8s中的资源 1.什么叫资源? k8s中所有的内容都抽象为资源, 资源实例化之后,叫做对象 2.在k8s中有哪些资源? 工作负载型资源(workload): Pod ReplicaSet D ...
- gentoo emerge L10N
gentoo 中安装软件的时候 emerge 提示 USE 中有 语言包可选安装,使用 L10N 来设置,设置方法是在USE中使用 l10n_,比如说 l10n_zh_CN 来安装中文支持包.
- 同步锁Lock(互斥锁)
同步锁作用: 在我当前包含(lock.acquire() 和 lock.release()之间 )的代码没有执行完成,不进行线程切换,必须等我执行完了,下一个线程才能继续执行(为什么要用同步锁,假如我 ...
- JavaScript学习-2循环
文章目录 ----------①console函数 ----------②for循环 ----------③跳出循环 ----------④练习题:口诀表 ----------⑤练习题:幼兔 ---- ...
- sql查询语句for xml path语法
[原地址] for xml path作用:将多行的查询结果,根据某一些条件合并到一行. 例:现有一张表 执行下面语句 select Department, (SELECT Employee+',' F ...
- laravel不能读取session
Laravel用redis存储session,论坛有讨论说关于session无法保存的问题:https://laravel-china.org/topics/13510/points-to-be-pa ...
- mysql实用函数
1. group_concat(); 可以将选择的字段列数据,分组以逗号分隔成一串.实用方便.select id,group_concat(distinct name) from ttt group ...
- Adreno GPU Profiler
Adreno GPU Profiler,除了UNITY profiler外的一个备选,似乎不能看CPU,内存?
- MySQL中基于mysqldump和二进制日志log-bin进行逻辑备份以及基于时间点的还原
本文出处:http://www.cnblogs.com/wy123/p/6956464.html 本文仅模拟使用mysqldump和log-bin二进制日志进行简单测试,仅作为个人学习笔记,可能离实际 ...
- Hibernate 再接触 性能优化
Sessionclear 否则session缓存里越来越多 Java有内存泄露吗? 在语法中没有(垃圾自动回收) 但是在实际中会有 比如读文件没有关什么的 1+N问题 解决方法:把fetch设置为la ...