对于一个无向图,如果一个点集,它内部的任意一个点对之间,至少有两条点完全不重复的路径,那么这个点集就是原图的一个点双连通分量,而点双联通分量之间是由割点隔开,割点就是如果删去这个点,原图的连通块数会增加,那么这个点就是割点。通过tarjan算法,我们可以用一次 dfs 标记出所有的割点以及所有双连通...
分类:
其他好文 时间:
2015-09-26 00:31:45
阅读次数:
248
题意: 给定一棵树,n个节点,若删除点v使得剩下的连通快最大都不超过n/2,则称这样的点满足要求。求所有这样的点,若没有这样的点,输出NONE。思路: 只需要拿“求树的重心”的代码改一行就OK了。因为依然是在判别最大连通块的点数。 1 //#include 2 #include 3 #inc...
分类:
其他好文 时间:
2015-09-25 11:05:13
阅读次数:
119
题意:8个方向如果能够连成一块就算是一个连通块,求一共有几个连通块。分析:网上的题解一般都是dfs,但是今天发现并查集也可以解决,为了方便我自己理解大神的模板,便尝试解这道题目,没想到过了。。。 1 #include 2 #include 3 #include 4 #include ...
分类:
其他好文 时间:
2015-09-25 00:04:30
阅读次数:
233
题意:给一棵树,在树中删除一些边,使得有一个连通块刚好为p个节点,问最少需要删除多少条边?思路: 因为任一条边都可能需要被删除,独立出来的具有p个节点的连通块可能在任意一处地方。先从根开始DFS,然后进行树DP,dp[t][i]表示在以t为根的子树中删除i个点需要删除多少条边。dp[t][n-p]....
分类:
其他好文 时间:
2015-09-18 11:49:16
阅读次数:
150
HDU 5441 Travel题意:一张无向图,q个查询,对于每个x,有多少对点之间的路径中最长的一条路不大于x。思路:比赛时王秋平写的,我补下题。这题也比较简单,将边排序,从小到大加到并查集,对查询也排序,从小到大对于每个查询把不大于x的边加到并查集,用cnt[y]记录以y为根的连通块有多少节点,...
分类:
其他好文 时间:
2015-09-15 21:55:36
阅读次数:
169
题目传送门题意:有一张无向图,度数小于2的点会被去掉,直到全都大于等于2,问连通块顶点数为奇数的权值和为多少分析:首先DFS把度数小于2的vis掉,第二次DFS把属于同一个连通块的vis掉,检查是否为奇数个定点,是累加和。用sz[i]表示i点真实还连着的点的个数代码:/***************...
分类:
其他好文 时间:
2015-09-14 12:06:28
阅读次数:
123
2015 ACM/ICPC Asia Regional Changchun Online题意:n个池塘,删掉度数小于2的池塘,输出池塘数为奇数的连通块的池塘容量之和.思路:两个dfs模拟就行了 1 #include 2 #include 3 #include 4 #include 5 #in...
分类:
其他好文 时间:
2015-09-13 15:58:06
阅读次数:
202
找人去炸边,炸完之后分成两个连通块(炸割桥)每条边上有w个守卫,派去炸桥的人不能比守卫少所以,如果原本不连通,那么输出0如果没有桥,输出-1如果有桥没有守卫,那么是输出1,而不是0(trick) 1 #pragma warning(disable:4996) 2 #pragma comment(li...
分类:
其他好文 时间:
2015-09-10 17:26:54
阅读次数:
144
有向图中在若两点之间可以互相到达,则称这两点强连通,如果一个点集内的所有点都可以互相到达,那么这个点集就是图的一个强连通分量,而我们需要找出有向图中的所有极大强连通分量,于是就用Tarjan算法进行强连通,并将一个连通块缩成一个点,这样就可以形成了一张有向无环图,对解题会很有帮助。找强连通分量的方法...
分类:
其他好文 时间:
2015-09-09 00:54:12
阅读次数:
313
一般的期望dp是, dp[i] = dp[j] * p[j] + 1; 即走到下一步需要1的时间,然后加上 下一步走到目标的期望*这一步走到下一步的概率这一题,我们将联通分块缩为一个点,因为联通块都是安全的dp[u][s] 为当前在u,走过的联通块为s的期望天数那么走到剩下没有走过的连通块的概率是 ...
分类:
其他好文 时间:
2015-09-03 10:24:37
阅读次数:
168