随笔分类 - 图论
HDU 5521 Meeting (最短路,dijstra)
摘要:题意:有N个点,两个人,其中一个人住在点1,另一个人住在点n,有M个点集,集合内的数表示任意两点的距离为dis ,现在问,如果两个人要见面, 需要最短距离是多少,有哪几个点能被当成见面点。 析:分别对1和n进行最短路操作,这个题最让人别扭的就是边太多,如果你直接全部都存下来,那么一定会MLE,所以一
阅读全文
HDU 4463 Outlets (最小生成树)
摘要:题意:给定n个点坐标,并且两个点已经连接,但是其他的都没有连接,但是要找出一条最短的路走过所有的点,并且路线最短。 析:这个想仔细想想,就是应该是最小生成树,把所有两点都可以连接的当作边,然后按最小生成树,写就OK了。 代码如下:
阅读全文
POJ 3169 Layout (差分约束)
摘要:题意:给定一些母牛,要求一个排列,有的母牛距离不能超过w,有的距离不能小于w,问你第一个和第n个最远距离是多少。 析:以前只是听说过个算法,从来没用过,差分约束。 对于第 i 个母牛和第 i+1 个,D[i] - D[i+1] <= 0, D[j] -D[i ]<= k, D[i] - D[j] <
阅读全文
HDU 3367 Pseudoforest (最大生成树)
摘要:题意:给出一个图,要求出最大的pseudoforest, 所谓pseudoforest就是指这个图的一个子图,这个子图的每个连通分量中最多只能有一个环, 而且这个子图的所有权值之和最大。这个就是所谓的伪森林。 析:并查集,在比赛时,做了3个多小时,都没做出来,就是题意没读对,我以为就是最大生成树,但
阅读全文
CodeForces 690C1 Brain Network (easy) (水题,判断树)
摘要:题意:给定 n 条边,判断是不是树。 析:水题,判断是不是树,首先是有没有环,这个可以用并查集来判断,然后就是边数等于顶点数减1. 代码如下:
阅读全文
CodeForces 681D Gifts by the List (树上DFS)
摘要:题意:一个家庭聚会,每个人都想送出礼物,送礼规则是, 一个人,先看名单列表,发现第一个祖先 就会送给他礼物,然后就不送了,如果他没找到礼物 他会伤心的离开聚会!告诉你m个祖先关系, 和每个人想给谁送!让你求出名单列表! 析:这个题,真是没想到啊,还是看的题解,首先要知道的是,如果自己和父结点送的人不
阅读全文
CodeForces 682C Alyona and the Tree (树上DFS)
摘要:题意:给定一棵树,每个叶子有一个权值,每条边也有一个权值,现在让你删最少的结点,使得从任何结点出发到另一个结点的边上权值和都小于两个结点的权值。 析:很明显是DFS,不过要想找出最少的结点可能不太容易,所以我们可以先找出剩下结点最多,那么用总数减去这个就好,那么怎么找哪些结点是剩下的呢?首先要知道,
阅读全文
CodeForces 687A NP-Hard Problem (二分图)
摘要:题意:给定 n 条边,然后让你把它分成两组,每组都有所有边的一个端点。 析:一开始我是先判定环,以为就不能成立,其实不是这样的,有环也行。用dfs进行搜索,并标记每一个端点,如果标记过并且和以前不一样,那么就是不能成立, 否则就能成立,并且标记上。最后分类输出就好。 代码如下:
阅读全文
UVa 247 Calling Circles (DFS+Floyd)
摘要:题意:如果两个人互通电话,那么他们就在一个电话圈里,现在给定 n 个人,并且给定 m 个通话记录,让你输出所有的电话圈。 析:刚开始没想到是Floyd算法,后来才知道是这个算法,利用这个算法进行连通性的判定,当且仅当d[i][j] = d[j][i] = 1时,他们是在一个圈里。 然后用Floyd算
阅读全文
UVa 1151 Buy or Build (最小生成树+二进制法暴力求解)
摘要:题意:给定n个点,你的任务是让它们都连通。你可以新建一些边,费用等于两点距离的平方(当然越小越好),另外还有几种“套餐”,可以购买,你购买的话,那么有些边就可以连接起来, 每个“套餐”,也是要花费的,让你求出最少花费。 析:首先想到的是把所有情况都考虑算一下,然后找出最少的,先算没有“套餐”的,然后
阅读全文
UVa 1395 Slim Span (最小生成树)
摘要:题意:给定n个结点的图,求最大边的权值减去最小边的权值最小的生成树。 析:这个和最小生成树差不多,从小到大枚举左端点,对于每一个左端点,再枚举右端点,不断更新最小值。挺简单的一个题。 代码如下:
阅读全文
HDU 1272 小希的迷宫 (并查集)
摘要:题意:你懂得。 析:根据题意我们应该知道是首先是不能含有环的,如果含有环那么路径就不唯一,其次要连通,因为如果不连通,那么有的结点就无法相连, 就不满足,仅有一条路径的条件了,判环用并查集,非常方便,在输入时要判断是这条边是不是已经连通了,如果已经连通了那么肯定就是环了, 也就不符合题意了,其次就是
阅读全文
UVa 1599 Ideal Path (两次BFS)
摘要:题意:给出n个点,m条边的无向图,每条边有一种颜色,求从结点1到结点n颜色字典序最小的最短路径。 析:首先这是一个最短路径问题,应该是BFS,因为要保证是路径最短,还要考虑字典序,感觉挺麻烦的,并不好做,事实用两次BFS, 第一次是倒序BFS,目的是得到从结点 i 到结点n的最短距离,然后再从第一个
阅读全文
UVa 1572 Self-Assembly (构造+拓扑排序。。。。。)
摘要:题意:给定n个带标号的正方形,标号要么是一个大写字母加一个+或-,要么是00, 当且仅当大写字母相同并且符号相反时可以连接,问你给定的能不能拼成一个无限大的的东西。 析:说实话,真心没有看出来是拓扑排序,后来知道是,可是还是不会写。 既然要拼成无限大,那么只要拼的时候拼出一个环来,又由于每个是无限多
阅读全文
UVa 12118 nspector's Dilemma (构造+DFS+欧拉回路)
摘要:题意:给定n个点,e条边和每条边的长度t,每两个点之间都有路相连,让你求一条最短的路经过这e条边。 析:刚开始想到要判连通,然后把相应的几块加起来,但是,第二个样例就不过,后来一想,那么有欧拉回路的还得加1啊。 又想每次再判一次是不是欧拉回路,怎么判又是问题,因为并不知道哪些是连在一块的,还得再查找
阅读全文
山东省第七届ACM竞赛 C题 Proxy (Dijkstra算法,单源路径最短问题)
摘要:题意:给定0-n+1个点,和m条边,让你找到一条从0到n+1的最短路,输出与0相连的结点。。。 析:很明显么,是Dijkstra算法,不过特殊的是要输出与0相连的边,所以我们倒着搜,也是从n+1找到0, 那么不就能找到与0相连的边么,注意判断相等值的时候。当时写错了好多次,就是没有考虑好边界。 代码
阅读全文
浙公网安备 33010602011771号