题意:给定一个n个点的连通的无向图,一个点的“鸽子值”定义为将它从图中删去后连通块的个数。

求对应的点 和 每个点的“鸽子值”

用一个数组在判断割顶的那个地方 累加标记一下所连接的连通块的数量即可

初始化为1。。从1开始累加

饿的发懒。。。看别人的代码吧。原代码地址:https://blog.csdn.net/u014664226/article/details/46622001

#include<cstdio>
#include<cstring>
#include<cmath>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#include<vector>
#include<map>
#include<queue>
#include<stack>
#include<string>
#include<map>
#include<set>
#define eps 1e-6
#define LL long long
using namespace std; const int maxn = + ;
const int INF = 0x3f3f3f3f;
int n, m;
vector<int> G[maxn];
int val[maxn], node[maxn]; //node数组记录结点id间接排序
bool cmp(int x, int y) {
return val[x] == val[y] ? x < y : val[x] > val[y];
} int pre[maxn], dfs_clock;
int dfs(int u, int fa) { //u在dfs树中的父节点为fa
int lowu = pre[u] = ++dfs_clock;
int child = ; //子节点个数
for(int i = ; i < G[u].size(); i++) {
int v = G[u][i];
if(!pre[v]) { //没有访问过v
child++;
int lowv = dfs(v, u);
lowu = min(lowu, lowv); //用后代的low函数更新u的low函数
if(lowv >= pre[u]) {
val[u]++;
} }
else if(pre[v] < pre[u] && v != fa) lowu = min(lowu, pre[v]); //用反向边更新u的low函数
}
if(fa < && child == ) val[u] = ;
return lowu;
} void init() {
dfs_clock = ;
memset(pre, , sizeof(pre));
for(int i = ; i < n; i++) {
G[i].clear();
node[i] = i;
val[i] = ;
}
int x, y;
while(scanf("%d%d", &x, &y) == && x >= ) {
G[x].push_back(y);
G[y].push_back(x);
}
} void solve() {
dfs(, -);
sort(node, node+n, cmp);
for(int i = ; i < m; i++) cout << node[i] << " " << val[node[i]] << endl;
cout << endl;
} int main() {
//freopen("input.txt", "r", stdin);
while(scanf("%d%d", &n, &m) == && n) {
init();
solve();
}
return ;
}

Doves and bombs UVA - 10765(统计割顶所连接的连通块的数量)的更多相关文章

  1. UVA 572 Oil Deposits油田(DFS求连通块)

    UVA 572     DFS(floodfill)  用DFS求连通块 Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format: ...

  2. UVA 10765 Doves and bombs(双连通分量)

    题意:在一个无向连通图上,求任意删除一个点,余下连通块的个数. 对于一个非割顶的点,删除之后,原图仍连通,即余下连通块个数为1:对于割顶,余下连通块个数>=2. 由于是用dfs查找双连通分量,树 ...

  3. poj 1144 Network 图的割顶判断模板

    Network Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 8797   Accepted: 4116 Descripti ...

  4. UVa 572 油田(DFS求连通块)

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  5. uva 10765 Doves and Bombs(割顶)

     题意:给定一个n个点的连通的无向图,一个点的"鸽子值"定义为将它从图中删去后连通块的个数.求每一个点的"鸽子值". 思路dfs检查每一个点是否为割顶,并标 ...

  6. UVA 10765 Doves and bombs

    给定一个无向的连通图,要求每个点去掉后连通分量的数目,然后输出连通分量最多的m个点. 分析: 先求出双连通分量,然后统计所有双连通分量中割顶出现的次数,最后求出的就是割顶去掉后剩下的双连通的数目,对于 ...

  7. UVA 315 :Network (无向图求割顶)

    题目链接 题意:求所给无向图中一共有多少个割顶 用的lrj训练指南P314的模板 #include<bits/stdc++.h> using namespace std; typedef ...

  8. POJ1144 Network 无向图的割顶

    现在打算重新学习图论的一些基础算法,包括像桥,割顶,双连通分量,强连通分量这些基础算法我都打算重敲一次,因为这些量都是可以用tarjan的算法求得的,这次的割顶算是对tarjan的那一类算法的理解的再 ...

  9. 图论(无向图的割顶):POJ 1144 Network

    Network   Description A Telephone Line Company (TLC) is establishing a new telephone cable network. ...

随机推荐

  1. macOS 10.14 Mojave Apache设置:多个PHP版本

    [18/6/2018更新]由于Homebrew/php点击在2018年3月底被弃用,并将所有PHP公式移动到Homebrew/core,我们已经重新设计了我们的指南,使用这个新的水龙头. 如果您过去一 ...

  2. iOS开发之多线程技术—GCD篇

    本篇将从四个方面对iOS开发中GCD的使用进行详尽的讲解: 一.什么是GCD 二.我们为什么要用GCD技术 三.在实际开发中如何使用GCD更好的实现我们的需求 一.Synchronous & ...

  3. phpcms v9如何给父级单页栏目添加内容

    对于phpcms单页的调用相信大家都应该没问题,那么如果我们在后台添加的单页有二层甚至更多的时候,这样在管理内容上是没有给父级栏目添加内容这一功能的!那么我们该怎么实现这个功能并调用呢? 首先我们要修 ...

  4. PytorchZerotoAll学习笔记(二)--梯度下降之手动求导

    梯度下降算法:    待优化的损失值为 loss,那么我们希望预测的值能够很接近真实的值 y_pred ≍ y_label      我们的样本有n个,那么损失值可以由一下公式计算得出: 要使得los ...

  5. dede 后台登录以后一片空白

    网上说的是 找到:include/common.inc.php文件,打开,查找程序代码: //error_reporting(E_ALL);  error_reporting(E_ALL || ~E_ ...

  6. Python3【基础】-表达式与运算符

    一.什么是表达式? 1+2*3就是一个表达式,这里的加号和乘号叫做运算符,1.2.3叫做操作数.1+2*3计算的结果是7,计算结果可以存到一个变量中,即:res = 1 + 2 * 3. 所谓的表达式 ...

  7. ES6的新特性(16)——Generator 函数的语法

    Generator 函数的语法 简介 基本概念 Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同.本章详细介绍 Generator 函数的语法和 API,它的 ...

  8. node.js常用方法

    1.获取真实地址 function getClientIp(req) { return req.headers['x-forwarded-for'] || req.connection.remoteA ...

  9. LeetCode 36. Valid Sudoku (C++)

    题目: Determine if a 9x9 Sudoku board is valid. Only the filled cells need to be validated according t ...

  10. 20181120-8 Beta阶段第2周/共2周 Scrum立会报告+燃尽图 06

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2414 版本控制地址    [https://git.coding.net ...