Graph Theory
文章平均质量分 62
秋水忆秦谣
三更灯火五更鸡,正是男儿读书时。 黑发不知勤学早,白首方悔读书迟。
展开
-
HDU 3549 Flow Problem
最大流问题。睡醒了,继续找个网络流的简单题来熟练。跟上一个一样。弧容量要加起来。#include#include#include#include#include#include#include#include#include#include#include#define INF 0x7fffffff#define eps 1e-6#define LL lo原创 2014-07-25 11:36:10 · 646 阅读 · 0 评论 -
HDU 1863 畅通工程(九度OJ 1024)
还是最小生成树。jiu'shi原创 2014-04-12 20:26:30 · 619 阅读 · 0 评论 -
POJ 2387 Til the Cows Come Home
最短路模版题我用的dijkstra。每个点每个点的更新。AC代码#include#include#include#include#define INF 100000001using namespace std;int n,m;bool vis[1001];int d[1001],g[1001][1001];int dijkstra(int o,int f){原创 2014-03-17 15:56:01 · 513 阅读 · 0 评论 -
POJ 1780 Code
记录欧拉路径。题意很难懂。英语渣,翻译半天不得要领。看PDF的中文才知道题意。题意:给一个 N (1给出了N=2 的例子。就拿这个说明,太长就说前面的。00102030405060708091121314151617181922324252627282933435363738394454647484955657585966768697787988990原创 2014-07-15 14:54:28 · 931 阅读 · 1 评论 -
POJ 3255 Roadblocks
次最短路。题意简单,无向图求次最短路。起点,终点分别做一个SPFA。 然后 d1[u] + w[u,v] +d2[v] 就是经过此边的最短路。 只要排除掉最短,然后比较再找最短。就是总的次短路。#include#include#include#include#include#include#include#include#include#incl原创 2014-07-21 21:55:20 · 848 阅读 · 0 评论 -
ZOJ 2770 Burn the Linked Camp
差分约束(最短路)不等式用最短路来求。问题是好难找约束条件——建立不等式。题意问最少有多少兵。即建立好各点的约束条件,求0~N 的最短路。有负环得判断入队次数。反正还没多大理解差分约束,Hurry up!#include#include#include#include#include#include#include#include#inc原创 2014-07-21 16:18:27 · 859 阅读 · 0 评论 -
POJ 2607 Fire Station
枚举+最短路问题。题意依然晦涩难懂。新建一个消防站n 可以使得所有交叉路口到最近的一个消防站的距离中最大值减小,且n 是满足条件的交叉路口序号中序号最小的。先每个消防站做SPFA。找到所有点 到最近消防站的 距离。然后枚举 每个不是消防站的点,找到距离这个点的最大距离。然后比对 最大是否更新了。ORZ的是,输入边的时候要EOF。简直……谁是出原创 2014-07-21 13:53:29 · 970 阅读 · 0 评论 -
POJ 1603 Risk
最短路问题。题意是说:前面19行是 相邻关系,无向图,后面是询问最短。Floyd最简单。不过我用的SPFA。其实就是求最短路,不过没有距离了,只是每次 +1 。注意最后一行需要输出一个空行。贡献PE一发。#include#include#include#include#include#include#include#include#include原创 2014-07-21 10:23:37 · 810 阅读 · 0 评论 -
POJ 3026 Borg Maze
最小生成树+BFS题意是说在迷宫之中找出连接所有点的最小生成树,其他杂项完全不理会,我理解题意就花了好久。我用的Kruskal,输入的时候给每个点标号,然后BFS 每个点,找出最近的所有边,接下来就是模版的Kruskal。因为是迷宫,所以只能用BFS去搜与它相通的每个点的最短路。不过数据有点坑,建议数组开大一点,我提交的时候RE一次,绝对不止100个原创 2014-07-06 02:10:04 · 1128 阅读 · 0 评论 -
POJ 3625 Building Roads
最小生成树模版题。N个点,M条已经存在的边。算出两两点之间的距离,然后Kruskal。#include#include#include#include#include#include#include#include#include#include#include#include#define INF 0x7fffffff#define eps 1e-6原创 2014-07-05 16:17:21 · 723 阅读 · 0 评论 -
2014 UESTC Training for Graph Theory Problem K WHITE ALBUM
方老师的分身 IV 各种忧伤。。。原创 2014-06-27 00:13:47 · 594 阅读 · 0 评论 -
HDU 2254 最短路
模版题。拿来熟练 SPFA。原创 2014-06-28 13:50:48 · 494 阅读 · 0 评论 -
POJ 2240 HDU 1217 Arbitrage
也是图论里关于路径的。给你一些货币的兑换比例,问你是否发生原创 2014-06-28 13:55:29 · 581 阅读 · 0 评论 -
POJ 2472 106 miles to Chicago
最短路问题变形。题意是给你一些道路,和路过时不被抓的概率。要求找一条到达目的地时不被抓的最大概率概率。初始 dis[]设为 1 。其余为 0 。找最大即可。#include#include#include#include#include#include#include#include#include#include#include#define I原创 2014-07-20 19:48:00 · 904 阅读 · 0 评论 -
POJ 2570 Fiber Network
最短路变形。题意是说不同的点之间有不同的公司建立了不同连接。询问 A,B之间如果存在通路,有那些公司。我用bool g[][][26] 来表示26个字母。然后Floyd, G++就超时。C++ 就AC了。然后看别人代码才知道还有位运算……ORZ。。。自己的代码:C++ AC。813ms#include#include#inclu原创 2014-07-19 17:36:58 · 725 阅读 · 0 评论 -
POJ 1300 Door Man
判断是否欧拉回路。很蛋疼的一道题,加上DFS判所有点是否连通就无限WA。(并查集也可判)直接定理就AC了。都不知道所有点是不是在一个 连通块里面。然后他们说:Your master is a particularly absent-minded lout and continually leaves doors open throughout a particular floo原创 2014-07-06 22:31:27 · 1141 阅读 · 0 评论 -
POJ 2421 Constructing Roads
最小生成树问题。Kruskal,如果已经有边就合并。然后找最小。没有坑点。G++ AC。#include#include#include#include#include#include#include#include#include#include#include#define INF 0x7fffffff#define eps 1e-6using n原创 2014-07-04 22:04:14 · 709 阅读 · 0 评论 -
HDU 1272 小希的迷宫
并查集的应用。注意有些点可能没有出现。#include#include#include#include#include#include#include#include#include#include#include#include#define INF 0x7fffffff#define eps 1e-6using namespace s原创 2014-07-04 13:59:11 · 570 阅读 · 0 评论 -
POJ 1287 Networking
最小生成树,也算是模版题。依然Kruskal。N个点,M条边,排序,并查集。没有什么坑点。#include#include#include#include#include#include#include#include#include#include#include#include#define INF 0x7fffffff#define eps 1e原创 2014-07-03 20:35:33 · 609 阅读 · 0 评论 -
POJ 1251 Jungle Roads
基础最小生成树。Kruskal 比较简单,排序+并查集。最多26个点。处理下字母,输入共n-1行。算是复习了。#include#include#include#include#include#include#include#include#include#include#include#include#define INF 0x7ffff原创 2014-07-03 20:21:50 · 732 阅读 · 0 评论 -
POJ 1135 Domino Effect
最短路问题,我用的SPFA。求出各个点的最短时间。然后每条边的为 (d[u]+d[v]+len)/2 len 为此边长度。然后找时间最长的。#include#include#include#include#includeusing namespace std;int n,m;struct lx{ int v; double t;};v原创 2014-07-02 10:21:57 · 646 阅读 · 0 评论 -
HDU 1245 Saving James Bond
计算几何+SPFA我已经不想看我的提交记录了。。。。HDU 我起码WA了2页。。。。都是浮点数惹的祸。const double eps=1e-4;a-b这样来判断相等。总共 n 条鳄鱼,最多有 n*(n+1)/2 条路。抽象化处理。把 中心的起点当作 起点0 ; 最多有 n+1 条路。把鳄鱼和周围的边界的终点都当作 n+1 ; 最多有原创 2014-06-29 08:49:47 · 1163 阅读 · 0 评论 -
POJ 2524 Ubiquitous Religions
并查集问题。题意是说 有不同的宗教信仰。在调查的时候,学生不愿说出来,只是说和某些人一样。然后你的目的就是调查出到底有多少种宗教信仰。相同就合并,最后扫描一遍。#include#include#include#include#include#include#include#include#include#include#include#include原创 2014-07-05 14:33:53 · 598 阅读 · 0 评论 -
POJ 2031 Building a Space Station
最小生成树问题。空间坐标系,还有点的半径。如果两个点距离减去它们的半径小于0,表明他们重叠了。直接并查集合并。剩下的就排序,并查。#include#include#include#include#include#include#include#include#include#include#include#define INF 0x7fffffff#原创 2014-07-04 21:25:07 · 782 阅读 · 0 评论 -
POJ 3259 Wormholes
最短路判断是否出现负环。SPFA过的,以前用Bellman。那是好久之前跟着一群大神混过去的,都忘了题了。现在更深刻的理解图了。给n点,m条正权边,w条负权边。正权边是无向的,负权边是单向的。判断是否出现了负环。用SPFA,当某个点n 次入队了之后,肯定出现了负权。#include#include#include#include#incl原创 2014-07-02 20:47:02 · 806 阅读 · 0 评论 -
POJ 3522 Slim Span
最小生成树+枚举。题意是说在一个无向图的所有生成树中,选取最小“苗条”值的。“苗条”的定义是生成树中权值最大的边 减去 权值最小的边的 值。我的思路是 排序,然后从 0~m枚举。每次必然加入枚举的那一条边。然后 向其左右分别 选择边加入。直到构成生成树,不能就返回INF。其实我感觉我的代码有点问题,我没有比较左右当中谁更 接近 枚举的那条原创 2014-07-05 18:08:28 · 716 阅读 · 0 评论 -
POJ 2236 Wireless Network
算起来是个并查集问题。题意是说 有N台电脑,每台电脑能以自身为中心连接D米范围的电脑。给出N台电脑坐标,针对询问操作,输出是否连通。我用邻接表存储的,如果两电脑坐标 距离小于他们半径和,存起来,表明这两个点可以连通。用 online[] 表明是否被修复。 修复之后才可以用并查集合并。修复操作就启用 online,然后遍历这个点的邻接边,如果也有online 的,原创 2014-07-05 15:40:38 · 594 阅读 · 0 评论 -
ZOJ 1655 Transport Goods
最短路问题变形。题意是说从各个点运送东西到 n;能剩下来最多的。(无向图)整体变成了求到各点时 最大的 剩余率。边权变成了过路费率p,0存储的时候用 1-p 存 剩余率。实际剩下的货物是 goods *(1-p)#include#include#include#include#include#include#include#include#inclu原创 2014-07-03 10:25:08 · 877 阅读 · 0 评论 -
HDU 2923 Einbahnstrasse
英语渣就是这点不好。。。巨恶心这种描述多的题。。大意就是求 从一个点出发,到某些点,然后又从那些点返回的距离之和的 最小值。Dijkstra+邻接矩阵。 正向建图,求出出发距离,然后swap边,求出 返回距离。注意的是 车可能有重复的。某个点有多少车就需要乘以车的数量。#include#include#include#include#in原创 2014-07-01 19:36:12 · 603 阅读 · 0 评论 -
HDU 1546 Idiomatic Phrases Game
成语接龙。上一个的尾必须和下一个的首相同。注意:花费的时间是上一个。一开始我就建图建错了。比如第 i 个成语 与第 j 个成语, 第 i 个成语前面的时间为 t ;建图为 i -> j = t;基友说这《图论算法理论、实现及应用》上有一样的题,我借来看了一下,发现它建图似乎有错误。0->3 这条边的权值似乎错了。反正我的原创 2014-07-01 11:23:46 · 887 阅读 · 0 评论 -
HDU 1875 畅通工程再续
最小生成树问题。先存储各个d原创 2014-04-13 11:47:13 · 489 阅读 · 0 评论 -
POJ 3463 Sightseeing
最短路+次短路(SPFA)题意是要求你找出最短路的条数+与最短路只差1的次短路的条数。开始只会算最短路的条数,和次短路的长度。真是给次短路条数跪了。ORZ。其他人都用Dijkstra。我想试试SPFA。然后大神说要把这个最短,次短都拿去push。而且要用最短来。priority_queue。优先队列。改得无比忧伤。反正开始改来改去连样例都过不了。后来想着 如果最短可原创 2014-07-22 10:40:12 · 931 阅读 · 0 评论 -
HDU 1181 变形课
多种解法,水题。DFS,BFS,最短路。只要B开头能到M结尾。我建立的最短路模型,然后SPFA。。花式AC。。#include#include#include#include#include#include#include#include#include#include#include#include#define INF 0x7fffff原创 2014-09-20 21:44:38 · 826 阅读 · 0 评论 -
POJ 1511 Invitation Cards
SPFA + vector邻接表 居然TLE。 Time Limit: 8000MS然后又是尝试一下 堆优化的Dijkstra + vector邻接表 果然还是TLE。放弃vector,转为静态。SPFA 1891MSDijkstra_heap 1938MS突然发现以前做过这个题。搜一下自己的Blog SPFA + vector 7063MS 危险的过了……原创 2014-11-25 12:18:13 · 723 阅读 · 0 评论 -
HDU 1595 find the longest of the shortest
最长的最短路。题意很晦涩,做的时候花了四个小时理解题意……给中文会死啊!!!是说从 N 到 1 的路中可能有一些路被封堵了,无法通过。求N 到 1 中最长的最短路。一般想法就是枚举 每条路不能通过时候的最短路。时间花费太高。 m*O(SPFA);可以先做一次SPFA,把最短路径记录下来。其他的路不管是不是 封堵了,最短路都是这么多。然后再 枚举 ,把原创 2014-07-18 22:54:43 · 736 阅读 · 0 评论 -
POJ 1459 Power Network
最大流问题。题意说电网有三种站点, 发电站,中转站,用户站。 直接建立超级S 和 T 。S-> 发电站 容量就是发电量。用户-> T 容量就是用电量。然后求最大流即可。#include#include#include#include#include#include#include#include#include#include#inclu原创 2014-07-25 15:05:04 · 717 阅读 · 0 评论 -
POJ 3259 Wormholes
农民有很多农场,农场之间有路,还有虫洞……input :23 3 11 2 21 3 42 3 13 1 3第一行:测试数据组第二行:N,M,W:N=农场数,M=农场之间路,W=虫洞路。我的理解大概就是能否检测到 负权回路,然后农民回去就看到自己。#include#include#include#define Size 1e8using names原创 2013-08-09 17:10:18 · 537 阅读 · 0 评论 -
POJ 3268 Silver Cow Party
求来回最短路加起来最长的一条。两次SPFA,然后选某个点的来回最长。(有向图)Dijkstra+邻接矩阵 比较方便建立 反向图。我用SPFA+2个邻接表(正图+反图),C++ 32ms。#include#include#include#include#include#include#include#include#include#include#include原创 2014-07-02 19:30:58 · 670 阅读 · 0 评论 -
HDU 3790 最短路径问题
最短路问题。2个权值,原创 2014-06-28 14:02:10 · 545 阅读 · 0 评论 -
NYOJ 42 一笔画问题
这题开始以为很水。判断一下每个点的奇偶就可以了,只存在两个点是奇点,就是起点和终点。提交了WA了。后来思考是不是要每个点都要连通。DFS来了一次。AC了。#include#include#include#include#includeusing namespace std;int u[1001];bool vis[1001][1001];bool g[1001][1001]原创 2014-03-10 11:25:36 · 655 阅读 · 0 评论