【lightoj-1063】Ant Hills(求割点)
求割点模板题
#include <bits/stdc++.h>
using namespace std;
const int N = 10004;
int dfn[N], low[N];
bool ok[N];
vector<int>V[N];
int n, num, root;
void dfs(int s, int f)
{
low[s] = dfn[s] = ++num;
int child = 0;
for(unsigned int i = 0; i < V[s].size(); i++)
{
int v = V[s][i];
if(!dfn[v])
{
child++;
dfs(v, s);
low[s] = min(low[s], low[v]);//更新s节点能访问到最早的时间戳
if(low[v] >= dfn[s] && s != root)
ok[s] = 1;
if(s == root && child >= 2) ok[s] = 1;
}
else if(v != f) low[s] = min(low[s], dfn[v]);
}
}
int main()
{
int t, n, cas = 0, m, a, b;
//freopen("1.txt", "w", stdout);
cin>>t;
while(t--)
{
memset(dfn, 0, sizeof dfn);
memset(low, 0, sizeof low);
memset(ok, 0, sizeof ok);
scanf("%d%d", &n, &m);
for(int i = 0 ; i <= n; i++) V[i].clear();
num = 0;
for(int i = 1; i <= m; i++)
{
scanf("%d%d", &a, &b);
V[a].push_back(b);
V[b].push_back(a);
}
for(int i = 1; i <= n; i++)//图不一定连通
{
if(!dfn[i])
{
root = i;
dfs(i, i);
}
}
int ans = 0;
for(int i = 1; i <= n; i++)
if(ok[i]) ans++;
printf("Case %d: %d\n", ++cas, ans);
}
return 0;
}
【lightoj-1063】Ant Hills(求割点)的更多相关文章
- LightOJ 1063 Ant Hills
Ant Hills Time Limit: 2000ms Memory Limit: 32768KB This problem will be judged on LightOJ. Original ...
- loj 1063(求割点个数)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26780 思路:判断一个点是否是割点的两个条件:1.如果一个点v是根 ...
- Tarjan应用:求割点/桥/缩点/强连通分量/双连通分量/LCA(最近公共祖先)【转】【修改】
一.基本概念: 1.割点:若删掉某点后,原连通图分裂为多个子图,则称该点为割点. 2.割点集合:在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成 ...
- poj1523 求割点 tarjan
SPF Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 7678 Accepted: 3489 Description C ...
- [学习笔记]tarjan求割点
都口胡了求割边,就顺便口胡求割点好了QAQ 的定义同求有向图强连通分量. 枚举当前点的所有邻接点: 1.如果某个邻接点未被访问过,则访问,并在回溯后更新 2.如果某个邻接点已被访问过,则更新 对于当前 ...
- tarjan算法求割点cojs 8
tarjan求割点:cojs 8. 备用交换机 ★★ 输入文件:gd.in 输出文件:gd.out 简单对比时间限制:1 s 内存限制:128 MB [问题描述] n个城市之间有通讯网 ...
- UESTC 900 方老师炸弹 --Tarjan求割点及删点后连通分量数
Tarjan算法. 1.若u为根,且度大于1,则为割点 2.若u不为根,如果low[v]>=dfn[u],则u为割点(出现重边时可能导致等号,要判重边) 3.若low[v]>dfn[u], ...
- POJ 1144 Network(Tarjan求割点)
Network Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 12707 Accepted: 5835 Descript ...
- (转)Tarjan应用:求割点/桥/缩点/强连通分量/双连通分量/LCA(最近公共祖先)
基本概念: 1.割点:若删掉某点后,原连通图分裂为多个子图,则称该点为割点. 2.割点集合:在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成多个 ...
随机推荐
- Django生成CSV文件
1.生成CSV文件 有时候我们做的网站,需要将一些数据,生成有一个CSV文件给浏览器,并且是作为附件的形式下载下来.以下将讲解如何生成CSV文件. 2.生成小的CSV文件 这里将用一个生成小的CSV文 ...
- Linux(8)- nginx+uWSGI+virtualenv+supervisor 发布web服务器
一.理论梳理 WSGI是web服务器的网关接口,它是一个规范,描述了web服务器(下图中的WEB server)如何与web应用程序(下图中的Application)通信,以及web应用程序如何链接在 ...
- sql server如何把查询结果发邮件出去
原本:https://zhidao.baidu.com/question/1819725575342685788.html --1.启用Database Mail扩展存储过程 sp_configure ...
- 开发微信公众平台--新建新浪云sae部署server
创建新浪云计算应用 申请账号 我们使用SAE新浪云计算平台作为server资源.而且申请PHP环境+MySQL数据库作为程序执行环境. 申请地址:百度搜sae ,使用新浪微博账号能够直接登录SAE,登 ...
- mysql 时间处理函数
(1)求两个时间戳之间相差的天数 SELECT TIMESTAMPDIFF(DAY, FROM_UNIXTIM ...
- golang 实现并发计算文件数量
package main import ( "fmt" "io/ioutil" "os" ) func listDir(path strin ...
- CDN 环境下获取用户IP方法
CDN 环境下获取用户IP方法 1 cdn 自定义header头的X-Real-IP,在后端使用$http_x_real_ip获得 proxy_set_header X-Real-IP $remote ...
- appium API java
原创内容,未经允许,禁止转载! driver.close();//关闭 driver.closeApp();//关闭应用,其实就是按home键把应用置于后台 driver.currentActivit ...
- Redis五大数据类型及操作
目录: 一.redis的两种链接方式 二.redis的字符串操作(string) 三.redis的列表操作(list) 四.redis的散列表操作(类似于字典里面嵌套字典) 五.redis的集合操作( ...
- NHibernate 配置增加代码感知
Adding the Schema Include the schema in your Project, Solution, or Visual Studios XML Schemas folder ...