坑了我一天的题目..跑了20ms挂了,就知道有个小毛病= = 无向图转有向图判强连通. 首先要知道什么样的无向图可以转化为强连通图?连通分量(环)自然是可以的:那么扩大范围(存在割顶),发现点连通分量也是可以的:再扩大范围(存在桥),明显不能满足.所以边连通分量是实现无向图与强连通图转化的界限. 那么如果原图本身不是边连通的呢?先缩点,问题转化为——怎样把无向无环图(森林)构建成边连通图:从度入手.其实真正要考虑的是叶子节点(degree==1),和部分根节点(degree==0或degree=…
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="">题目链接 题意:给定一个无向图(不一定全连通).如今把边定向,问还要加…
很好的一道图论题,整整撸了一上午... 题意是给定一个无向图,要求将所有边变为有向边,求最少加入多少条有向边,使得该图强连通?这里先假设一个问题:给定一个无向子图,该子图具有怎样的性质才能使得将其无向边都变为有向边后强连通?显然是边-双连通!边连通的性质就是任意两点间存在边部重合的两条路,所以你懂的... 所以这个题的解法就是:求出原图的边-双连通分量后缩点,变成一棵bcc树.现在问题就变成了:给定一棵无向树,添加最少边使得该图强连通?这个问题在纸上画画大概能推出来...sum为所有叶子节点的个…
//自己写的第一发tarjan 解:先进行双连通分解并缩点,分解后一定是一颗树,设叶节点个数为n那么答案就是(n+1)/2 关于双连通分量求解:在跑tarjan时判断每个点连向父节点的边是否是桥,如果是桥的话,该点的后代 中,未被染色的节点一点构成一个双连通分量,那么将其染色. 染色完成后依次检查每一条边的两端是 否为两种不同的颜色,如果是,所对应的颜色的度+1,最后看多少个度为1的节点就知道有多少叶子节点 也就能得到答案了. #include<cstdio> #include<iost…
一道特别好的题qwq. 题目大意就是给你一个无向图,让你把边定向之后再加一些边使得这个图强连通,求最少需要加多少边. 一开始毫无头绪23333,数据范围让人摸不着头脑..... 然后开始画图,,,发现环上的边都顺时针或者逆时针是很优的,之后扩展到了 边双联通分量上(因为边双联通分量中的每个边都在至少一个环中嘛):可以发现每个边双联通分量都存在一种边的定向方式,使得定向之后这个联通分量是强连通分量. 这个考虑一个个把环缩起来就行了吧. 于是我们先跑一遍 tarjan,把图中所有桥找出来,然后图中的…
题目链接: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…
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…
题意:在一个无向连通图上,求任意删除一个点,余下连通块的个数. 对于一个非割顶的点,删除之后,原图仍连通,即余下连通块个数为1:对于割顶,余下连通块个数>=2. 由于是用dfs查找双连通分量,树形结构是向下搜素,所以在dfs过程中不便于统计割顶所分连通分量的个数.换一个角度,通过在vector<int>bcc中保存各个双连通分量的点,统计各个点出现的次数即可.(除割顶外,每个点只可能出现一次) #include<cstdio> #include<cstring>…
题目大意:将n个点,m条边的无向图变成强连通图,最少需要加几条有向边. 题目分析:所谓强连通,就是无向图中任意两点可互达.找出所有的边连通分量,每一个边连通分量都是强连通的,那么缩点得到bcc图,只需考虑在bcc图上加有向边.如果,bcc图是由v个孤立的点,0条边构成的,则最少需要添加v条(将v个点首尾顺次连起来构成一条圈)有向边.如果由v个点,k条边构成,则对于每一个顶点,如果度数大于2,就不用给它加任何边,因为它一定能会在圈中:如果度数为1,则为这个点添只加一条边即可:如果度数为0,也就是孤…
https://vjudge.net/problem/UVALive-3523 题意: 有n个骑士经常举行圆桌会议,商讨大事.每次圆桌会议至少应有3个骑士参加,且相互憎恨的骑士不能坐在圆桌旁的相邻位置.如果发生意见分歧,则需要举手表决,因此参加会议的骑士数目必须是奇数. 统计有多少个骑士不可能参加任何一个会议. 思路: 把不相互憎恨的骑士之间连一条无向边. 因为是圆桌,所以骑士之间要构成一个环,相当于是一个点双连通分量的模型. 环的点的个数得是奇数,这就需要用到前面二分图染色的知识,如果是偶数,…