题目大意:

求割点;

基本思路:

tarjan算法,套板子

代码如下:

#include<iostream>
#include<string>
#include<vector>
#include<queue>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath> using namespace std; const int inf = 0x3f3f3f3f;
const int maxn = 110+10; bool vis[maxn];
int dfn[maxn],low[maxn],cut[maxn];
vector<int>gra[maxn];
int cnt=0;
void cutPoint(int fa,int u){
vis[u]=true;
dfn[u]=low[u]=++cnt;
int child=0;
int sz=gra[u].size();
for(int i=0;i<sz;i++){
int v=gra[u][i];
if(v!=fa&&vis[v]){
low[u]=min(low[u],dfn[v]);
}else if(!vis[v]){
child++;
cutPoint(u,v);
low[u]=min(low[u],low[v]);
if((fa==-1&&child>1)||(fa!=-1&&low[v]>=dfn[u])){
cut[u]=1;
}
}
}
}
int main(){
int n;
while(scanf("%d",&n)==1&&n){
if(!n) break;
cnt=0;
for(int i=1;i<=n;i++){
gra[i].clear();
}
memset(vis,false,sizeof(vis)); memset(cut,0,sizeof(cut));
int u,v;
while(scanf("%d",&u)==1&&u){
while(getchar()!='\n'){
scanf("%d",&v);
gra[u].push_back(v);
gra[v].push_back(u);
}
}
for(int i=1;i<=n;i++){
if(!vis[i]){
cutPoint(-1,i);
}
}
int ans=0;
for(int i=1;i<=n;i++){
if(cut[i]){
ans++;
}
}
printf("%d\n",ans);
}
return 0;
}

  

poj 1144 割点模板题的更多相关文章

  1. poj 1144(割点)

    题目链接:http://poj.org/problem?id=1144 题意:给出一个无向图,求关键节点的个数. 分析:双连通分量Tarjan算法直接求割点就行了,裸的模板题. AC代码: #incl ...

  2. POJ Oulipo KMP 模板题

    http://poj.org/problem?id=3461 Oulipo Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4 ...

  3. POJ Oulipo(KMP模板题)

    题意:找出模板在文本串中出现的次数 思路:KMP模板题 #include<cstdio> #include<cstring> #include<cmath> #in ...

  4. hdu 2544 hdu 1874 poj 2387 Dijkstra 模板题

    hdu 2544  求点1到点n的最短路  无向图 Sample Input2 1 //结点数 边数1 2 3 //u v w3 31 2 52 3 53 1 20 0 Sample Output32 ...

  5. POJ 半平面交 模板题 三枚

    给出三个半平面交的裸题. 不会的上百度上谷(gu)歌(gou)一下. 毕竟学长的语文是体育老师教的.(卡格玩笑,别当真.) 这种东西明白就好,代码可以当模板. //poj1474 Video Surv ...

  6. Minimum Cost POJ - 2516(模板题。。没啥好说的。。)

    题意: 从发货地到商家 送货 求送货花费的最小费用... 有m个发货地,,,n个商家,,每个商家所需要的物品和物品的个数都不一样,,,每个发货地有的物品和物品的个数也不一样,,, 从不同的发货地到不同 ...

  7. Minimum Cost POJ - 2516 (模板题 spfa最小费用最大流)

    题意: 人回家,一步一块钱,有x个人,y个房子,求能回家的最大人数且使之费用最小 解析: 就是....套模板,,,, 建图(⊙﹏⊙)...要仔细观察呐 对于人拆不拆都可以  都能过,,,,这里贴上拆开 ...

  8. POJ 1144 割点

    题意 :求割点的数量 #include<iostream> #include<stdio.h> #include<vector> #include<strin ...

  9. POJ 1113 凸包模板题

    上模板. #include <cstdio> #include <cstring> #include <iostream> #include <algorit ...

随机推荐

  1. QT中视图(setViewport)和窗口(setWindow) 小总结

    参考博客: https://blog.csdn.net/weixin_39583140/article/details/92798127 https://blog.csdn.net/u01244271 ...

  2. nodejs部署配置pm2

    高大上先上部署node方式: 直接通过node app来启动,如果报错了可能直接停在整个运行, supervisor感觉只是拿来用作开发环境的. 目前似乎最常见的线上部署nodejs项目的有forev ...

  3. vue cli3以上的项目中如何使用axois请求本地json文件

    首先明确一点,在vue cli3以上的版本中,存放静态资源的文件是public 我刚开始以为是和vue cli2一样需要放在static文件夹下,但是项目中没有这个文件夹,我就自己创建了一个,结果请求 ...

  4. 多线程模拟生产者消费者示例之Lock

    public class Test { public static void main(String[] args) { List<String> list = new ArrayList ...

  5. 改计算机名导致 Oracle因目标主机或对象不存在

    手贱修改了计算机名, 结果导致登陆oracle数据库报如下错误,一查资料,说是修改了计算机名导致的,需要进到oracle安装目录: \oracle\product\10.2.0\db_1\NETWOR ...

  6. Invalid bound statement (not found)错误

    都对着,为什么会报这个错呢,mapper也拿到了,为什么查询时出错呢,最后看target里编译的文件发现少了mapping,xml没编译过去. 我的目录结构:dao层都编译过去了,但mapper.xm ...

  7. Git中三种文件状态及其转换和git适用命令

  8. 【HDOJ6595】Everything Is Generated In Equal Probability(期望DP)

    题意:给定一个N,随机从[1,N]里产生一个n, 然后随机产生一个n个数的全排列,求出n的逆序数对的数量并累加ans, 然后随机地取出这个全排列中的一个子序列,重复这个过程,直到为空,求ans在模99 ...

  9. 3 August

    P1013 进制位 结论:加法必为 \(n-1\) 进制:\({(n-1)}^1\) 位必为数字 1:\(0+0=0\). 模拟.字符串. #include <cstdio> #inclu ...

  10. 左手Mongodb右手Redis 第三章mongdb操作

    mongodb查询操作 1.查询操作 db.getCollection('example_data_1').find({})  查询所有的信息,相当于mysql中的select * from tabl ...