随笔分类 - ACM——图论
摘要:题目链接:http://poj.org/problem?id=3268 题意: 有编号为1-N的牛,它们之间存在一些单向的路径。给定一头牛的编号,其他牛要去拜访它并且拜访完之后要返回自己原来的位置,求这些牛中所花的最长的来回时间是多少。 思路: 很骚的写法,这里用了两个数组标记,head,next,
阅读全文
摘要:题目链接:http://hihocoder.com/problemset/problem/1081 SPFA求最短路,是不应-羁绊大神教我的,附上头像。 我第一次写SPFA,我用的vector存邻接表,以后也会保持这种习惯。每个元素是一个pair类型,分别表示可连接的点,和权值。 SPFA:把起点放
阅读全文
摘要:题目链接:http://poj.org/problem?id=2253 题意: 给出两只青蛙的坐标A、B,和其他的n-2个坐标,任一两个坐标点间都是双向连通的。显然从A到B存在至少一条的通路,每一条通路的元素都是这条通路中前后两个点的距离,这些距离中又有一个最大距离。 现在要求求出所有通路的最大距离
阅读全文
摘要:题目链接:http://poj.org/problem?id=1797 题意:从路口1运货到路口n,最大的运货重量是多少?题目给出两路口间的最大载重。 思路:j加到s还是接到K下面,取两者的较大者,而使得载重量较大,而接到k下面,载重量是dis[k]和maps[k][j]的较小者。
阅读全文
摘要:题目链接:http://poj.org/problem?id=2240、 Floyd算法修改一下,我要最大路径(通过转汇率变到最大)改成max.
阅读全文
摘要:题目链接:http://poj.org/problem?id=1125 多源点最短路中的,最长路的,最短路。 看到这里就懵逼了,解释一下,找到一个源点,使得路最短,(遍历源点),路最短怎么求呢? 就是找到从该源点出发,到达所有点中的最长的点的路径,就是他的最短路,然后根据n个源点,找到这样的最长路最
阅读全文
摘要:题目链接:http://poj.org/problem?id=1789 还是套路。
阅读全文
摘要:题目链接:http://poj.org/problem?id=2560 只想说“全都是套路”,关键建图。
阅读全文
摘要:题目链接:http://poj.org/problem?id=1251 字符用%s好了,方便一点。
阅读全文
摘要:题目链接:http://poj.org/problem?id=2421 最小生成树的变形,有的村庄已经连接了,就直接把他们的权值赋为0,一样的做最小生成树,Prim算法。
阅读全文
摘要:题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=42 我是参考了红黑联盟的结题报告了的。但是有一个位置,应该是红黑联盟写错了吧,就是那个连通性的定义这里。 欧拉定理: 1、图是连通的,每两个点之间要直接或者间接相连。(这里红黑联盟好像写错了
阅读全文
摘要:题目链接:http://poj.org/problem?id=1149 题意中有一点要注意,否则构图就会有问题,每个顾客走后,被打开过的那些猪圈中的猪都可以被任意的调换到其他开着的猪圈中。 这里的构图不是单一的相邻,以及容量了,区别在于:他还要求这个容量,和连线。 这里的构图是,以顾客为节点,源点s
阅读全文
摘要:题目链接:http://poj.org/problem?id=1459 解题报告: 电力调度站不涉及流的产生和消耗,不用考虑,Edmonds-Karp算法,就是利用剩余网络和增广路来解决,网络中的最大流。 原理:剩余网络,就是一种回退,构造完在剩余网络后,在剩余网络中找一条增广路,其中的最小流量,每
阅读全文
摘要:题目链接:http://poj.org/problem?id=1419 题目大意:一个无向图,用黑白涂色,相邻的两个点不能图同一种颜色,求黑色的点最多有几个? 刚一看题,完全是图的m着色问题啊,我就套模板,好吧,搞了半天没出来,看了一下别人的博客,原来还是有不同的地方,求最大团。 这里DFS回溯时,
阅读全文
摘要:#include <stdio.h> #include <string.h> #include <algorithm> #define NUM 110 using namespace std; int n; ///图的顶点数 int m; ///可用的颜色数量 int c[NUM][NUM]; //
阅读全文
摘要:题目链接:http://poj.org/problem?id=2387 Dijkstra算法: //求某一点(源点)到另一点的最短路,算法其实也和源点到所有点的时间复杂度一样,O(n^2); 图G(V,E),设置一个顶点集合S,不断贪心选择,指导S扩充为V,计算结束。 贪心选择的方法:节点个数n,源
阅读全文
摘要:题目链接:http://poj.org/problem?id=2485 #include <iostream> #include <stdio.h> #include <memory.h> #include <string.h> #include <stdlib.h> using namespace
阅读全文
摘要:Kruskal算法是根据权来筛选节点,也是采用贪心算法。 /// Kruskal ///初始化每个节点为独立的点,他的祖先为自己本身 void made(int n) { for(int i=0; i<=n; i++) father[i]=i; ///father[i]存的父亲的编号 } ///找x
阅读全文
摘要:题目链接:http://poj.org/problem?id=1258 解题报告:
阅读全文
摘要:题目链接:http://poj.org/problem?id=2485 解题报告: 这里有一点要注意的是,第一个点时,dis数组还没有初始化,还全部为inf。第一次来到更新权时,才把邻接矩阵的数据存到dis中。
阅读全文
浙公网安备 33010602011771号