一些定义:割点集合(割集):在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成多个连通块,就称这个点集为割点集合。点连通度:最小割点集合中的顶点数。割边集合:如果有一个边集合,删除这个边集合以后,原图变成多个连通块,就称这个点集为割边集合。边连通...
分类:
其他好文 时间:
2014-09-30 01:43:01
阅读次数:
309
2道题目都差不多,就是问和相邻所有点都有相同数据相连的作为一个联通快,问有多少个连通块因为最近对搜索题目很是畏惧,总是需要看别人代码才能上手,就先拿这两道简单的dfs题目来练练手,顺便理一理dfs的思路,分析清楚dfs的退出递归的条件和什么时候进行递归调用是至关重要的,这两道题目不涉及回溯,对于需要...
分类:
其他好文 时间:
2014-09-25 04:11:48
阅读次数:
238
本题就是灵活运用DFS来求连通块来求解的。题意:给出一幅黑白图像,每行相邻的四个点压缩成一个十六进制的字符。然后还有题中图示的6中古老的字符,按字母表顺序输出这些字符的标号。分析:首先图像是被压缩过的,所以我们要把它解码成一个01矩阵。而且我们还要在原图像的四周加一圈白边,这样图中的白色背景都连通起...
分类:
其他好文 时间:
2014-09-24 05:53:15
阅读次数:
2173
【原题】http://acm.hdu.edu.cn/showproblem.php?pid=3367【题意】给出一张图,求最大生成树。要求每一个连通块上只能有一个环。【分析】对于Kruskal来说,最小/最大生成树只是改变一下排序顺序即可。这里需要另外注意添加的就是对环的判断了:如果两个节点不在同一...
分类:
其他好文 时间:
2014-09-09 20:04:29
阅读次数:
161
题意:
n*n的格子 将它分成n份大小为n的连通块 要求每个块形状不同 用4种颜色将格子染色后输出
思路:
纯构造题 考验智商 不过还是有思路可寻的
首先这题要想到将格子分区域的去做(想不到就没办法了…)假设我们两行为一个区域 那么将这两行划分成两个面积为n的块之后发现它们的形状必然相同 因此两行不行 所以我们尝试3行为1个区域!! 可以构造:
这样构造就可以保证形...
分类:
其他好文 时间:
2014-09-09 16:16:58
阅读次数:
168
题意:
一幅图某些点有监视器 监视器只记录第一次路过的时间 问 给出路线序列 是否存在满足序列的情况下遍历整幅图的点
思路:
不要想割点 割点无法处理在一个双连通分量内的多个监视器 这题就是贪心+搜索
贪心就是尽量多的使用不违背序列的点 那么我们先把序列里的第一个点和不存在监视器的点加入图 并将他们连边 对于其他的序列中的点 如果这个点存在与第一个点所形成的连通块连接的...
分类:
其他好文 时间:
2014-09-08 10:52:26
阅读次数:
216
题意:迷宫里有X作为墙,空格为可通过,*标记起点。然后需要你现在来刷墙,刷那些由起点可达的房间的墙,即找由起点可达的连通块。这里题目说墙是除几个字符之外的可打印字符,没有说是X。做题时当成了X,结果AC了~题目说到墙都是3格子宽1格子厚,好像也没什么用~
思路:输入时找到起点并记下,然后由起点深搜。
注意:从网站拷贝样例数据到txt时,它自动地少了很多空格,导致这个测试数据时不符合题意的。(不...
分类:
其他好文 时间:
2014-09-04 17:12:00
阅读次数:
287
题意:就是有一张大图,每个像素即格子只可能是 . * X 三种,分别代表背景、色子、色子的点数。两个格子是相邻的或连通的,当且仅当两个格子是*或X,且有公共边,即上下左右四个方向,对角不算,即四连块。将一个连通块看做一个色子,将这个连通块中的X的连通块个数看做该色子的点数。
思路:两次深搜。第一次是由*和X来深搜每个连通块,在深搜每个连通块时由X来深搜X的连通块个数。这里可以通过两个标记数组vi...
分类:
其他好文 时间:
2014-09-03 22:47:17
阅读次数:
303
题目:相当于有一个m行n列的格子矩阵,每个格子要么@要么*,两个格子是连通的当且仅当这两个格子都是@、且一个格子和另一个是水平、垂直或对角线相邻,即一个格子在另一个格子的周围八个格子范围内。最后求连通块的个数。
思路:和书上例题黑白格子一样,只是一个01,一个*@,稍微改一下就可以了。即通过dfs(x,y)递归地深度优先遍历。
Code:
#include
#include
#define...
分类:
其他好文 时间:
2014-08-31 21:30:21
阅读次数:
259
UVA 10765 - Doves and bombs
题目链接
题意:给定一个无向图,每个点的鸽子值为删去这个点后会有几个连通块,问鸽子值前m大的点的鸽子值,如果相同,按编号排
思路:就裸的双连通分量,在每个连通分量如果是割顶的点就加一,最后如果答案为0的点,答案应该是1
代码:
#include
#include
#include
#include
#in...
分类:
其他好文 时间:
2014-08-31 11:58:51
阅读次数:
186