题意:在一个无向连通图上,求任意删除一个点,余下连通块的个数. 对于一个非割顶的点,删除之后,原图仍连通,即余下连通块个数为1:对于割顶,余下连通块个数>=2. 由于是用dfs查找双连通分量,树形结构是向下搜素,所以在dfs过程中不便于统计割顶所分连通分量的个数.换一个角度,通过在vector<int>bcc中保存各个双连通分量的点,统计各个点出现的次数即可.(除割顶外,每个点只可能出现一次) #include<cstdio> #include<cstring>…
给定一个无向的连通图,要求每个点去掉后连通分量的数目,然后输出连通分量最多的m个点. 分析: 先求出双连通分量,然后统计所有双连通分量中割顶出现的次数,最后求出的就是割顶去掉后剩下的双连通的数目,对于不是割顶的点,去掉后剩下的仍为双连通,所以结果就是1. 代码: #include <iostream> #include <sstream> #include <cstdio> #include <climits> #include <cstring>…
最近好懒,堆了好多题没写题解.. 原题链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1706 题意: 给你一个图,问你每个点去掉后有多少个联通块 题解: 就Tarjan一下就好,很简单 代码: #include<iostream> #include<cstring> #include<vector>…
 题意:给定一个n个点的连通的无向图,一个点的"鸽子值"定义为将它从图中删去后连通块的个数.求每一个点的"鸽子值". 思路dfs检查每一个点是否为割顶,并标记除去该点后有多少个连通分量 #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<iostream> #include<algorithm&…
题目大意:给一个n个点的无向连通图,找出删除某个点后的连通块个数. 题目分析:统计一下每个节点属于几个双连通分量,若是割点,得到的便是答案,否则答案为1. 代码如下: # include<iostream> # include<cstdio> # include<stack> # include<vector> # include<cstring> # include<algorithm> using namespace std; #…
UVA 10972 - RevolC FaeLoN option=com_onlinejudge&Itemid=8&page=show_problem&category=547&problem=1913&mosmsg=Submission+received+with+ID+14127122" target="_blank" style="">题目链接 题意:给定一个无向图(不一定全连通).如今把边定向,问还要加…
layout: post title: 训练指南 UVA - 11324(双连通分量 + 缩点+ 基础DP) author: "luowentaoaa" catalog: true mathjax: true tags: - 双连通分量 - 基础DP - 图论 - 训练指南 The Largest Clique UVA - 11324 题意 给一张有向图G,求一个结点数最大的结点集,使得该结点中任意两个结点 u 和 v满足:要么 u 可以到达 v, 要么 v 可以到达 u(u 和 v…
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=33804. 思路:和poj的一道题有点像,不过这道题图可能不连通,因此首先求边双连通分量,然后算每个连通分量的度数,显然叶子节点的度数为1,孤立点的度数为0,然后就是统计度数了,对于孤立点ans+=2,对于叶子节点,ans++.于是最后的答案就是(ans+1)/2了. #include <iostream> #include <cstdio> #inc…
https://vjudge.net/problem/UVALive-3523 题意: 有n个骑士经常举行圆桌会议,商讨大事.每次圆桌会议至少应有3个骑士参加,且相互憎恨的骑士不能坐在圆桌旁的相邻位置.如果发生意见分歧,则需要举手表决,因此参加会议的骑士数目必须是奇数. 统计有多少个骑士不可能参加任何一个会议. 思路: 把不相互憎恨的骑士之间连一条无向边. 因为是圆桌,所以骑士之间要构成一个环,相当于是一个点双连通分量的模型. 环的点的个数得是奇数,这就需要用到前面二分图染色的知识,如果是偶数,…
#include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<iostream> #include<algorithm> #include<vector> #include<map> #include<queue> #include<stack> #include<string> #…