图论
yueqiq
这个作者很懒,什么都没留下…
展开
-
poj 2502 Subway
做的第一道图论题,用的是Dijkstra单源最短路算法,给我带来了无比沉痛的回忆啊!!!!WA了20+次,不知道错在哪里,最后换C++交,竟然AC了,poj各种坑啊找的原因了 ,G++在poj上不能用%lf 而应该是%f下面是code: 顺便求解。。。。。#include #include #include #include #include #include原创 2012-06-10 17:16:56 · 470 阅读 · 0 评论 -
poj1716 Integer Intervals
差分约束系统构图,设S(x)为与给定的set集合的交集大小,根据相互之间的关系构图解决code#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #原创 2012-08-06 11:20:25 · 288 阅读 · 0 评论 -
poj2485 Highways
这道题写prim的时候wa了一次,又找了半个小时的错,最后发现竟然是上次写题的时候把INF给改小了 我晕prim :/*ID: yueqiqPROG: numtriLANG: C++*/#include #include #include #include #include #include #include #include #include #include原创 2012-07-25 13:27:11 · 359 阅读 · 0 评论 -
poj 2253 Frogger
求所有路径中最大权值最小的那个权值,说是最短路,其实我觉得还是使用了动态规划的思想每个dis[i][j]中存储的是当前路径的最大权值(保证了这个值的最小性),那么就运用求flyod最短路的思想,通过两个点的dis[i][j]可以从通过一个点的dis[i][j]递推出来,最后存在dis[1][2]中的就是最终答案code#include #include #include #inc原创 2012-06-25 09:28:31 · 299 阅读 · 0 评论 -
poj 1860 Currency Exchange
题意: 有N种 货币,M个交易所,每个交易所互换两种货币,问给你第s种货币,你能否让它越换越多其实就是找一条能够让他增值的正权回路,这个 用bellman-Ford,spfa 几乎都能做,不过我没试过说一下思路:用bellman-Ford,在dis[S]没有增值的情况下进行反向松弛(就是放大);如果不能松弛了就退出来看一下有没有放大就可以了;(这样可以不用判断负环)用spfa,思路原创 2012-06-24 14:52:13 · 339 阅读 · 0 评论 -
hdu1102 Constructing Roads
先把已知路段的距离设为0,然后primcode/*ID: yueqiqPROG: numtriLANG: C++*/#include #include #include #include #include #include #include #include #include #include #include #include #include #in原创 2012-07-29 15:58:16 · 321 阅读 · 0 评论 -
poj1094 Sorting It All Out
拓扑排序,好麻烦的说code/*ID: yueqiqPROG: numtriLANG: C++*/#include #include #include #include #include #include #include #include #include #include #include #include #include #include #inc原创 2012-07-30 12:45:29 · 324 阅读 · 0 评论 -
poj3026 Borg Maze
这道题贡献了2次wa,最后原因是因为A有100个,而S有一个,所以共有101个点,数组应该开到102,而我只开到了101...........坑爹啊code/*ID: yueqiqPROG: numtriLANG: C++*/#include #include #include #include #include #include #include #include原创 2012-07-30 10:09:58 · 360 阅读 · 0 评论 -
hdu1142 A Walk Through the Forest
这题刚开始思考了半天却没想到什么好的办法,最后看了解题报告,发现我从一开始就没有记忆化搜索这方面的想法,我想到了求出每个点到终点的最短路,却没想到用记忆花搜索来解决路径条数思路:最短路+记忆化搜索code:#include #include #include #include using namespace std;const int INF = 0x3fffffff;in原创 2012-09-03 15:56:15 · 345 阅读 · 0 评论 -
poj1281 棋盘游戏
这题应该算是一道比较简单的二分图问题,可是我压根还是没想到二分图,一看解题报告说用二分图,再一琢磨就明白了。。。。就是求二分图的最大匹配和关键匹配code:#include #include using namespace std;int n,m,k;int link[101];bool graph[101][101],vis[101];struct pos{ i原创 2012-09-23 22:41:38 · 620 阅读 · 1 评论 -
Hdu1151 Air Raid
求最小路径覆盖Orzcode:#include#include#includeusing namespace std;int n,m,link[125];bool map[125][125],vis[125];bool find(int x){ int y; for(y=1;y<=n;y++) { if(map[x][y] && !原创 2012-11-05 14:09:22 · 421 阅读 · 0 评论 -
hdu1608 Girls and Boys
二分图的最大独立点集,在构图的时候因为复制了一遍,所以求出来的最大匹配其实是两倍。code:#include#include#includeusing namespace std;const int MAXN = 1010;int n;bool graph[MAXN][MAXN];bool vis[MAXN];int link[MAXN];int find(int原创 2012-11-06 11:16:22 · 439 阅读 · 0 评论 -
poj3020 Antenna Placement
只能说构图是痛苦的。。。。。完全没思路,思路在下面。。。。无向二分图的最小路径覆盖 = 顶点数 – 最大二分匹配数/2http://user.qzone.qq.com/289065406/blog/1299322779code#include #include #include #include #include #include #include #in原创 2012-07-30 15:36:28 · 293 阅读 · 0 评论 -
poj2195 Going Home
是为了学习KM算法敲这道题的,虽然是模版题,但是还是看着解题报告才敲出来的,KM还是有点深奥,有些地方没看懂,原理也是似懂非懂.........先放一放 等以后再细细揣摩code#include #include #include #include #include #include #include #include #include #include #in原创 2012-07-31 08:36:25 · 364 阅读 · 0 评论 -
poj1459 Power Network
先把多源多汇网络转化为单源单汇网络,然后EK模版code#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #defin原创 2012-07-31 12:05:09 · 358 阅读 · 0 评论 -
Dijkstra算法详解
在图的应用中,有一个很重要的需求:我们需要知道从某一个点开始,到其他所有点的最短路径。 这其中,Dijkstra算法是典型的最短路径算法。它的关键思想是以起始点为中心,向外一层层扩散,直到扩展到终点为止。Dijkstra算法能够得出最短路径的最优解,不过它需要遍历计算的节点相当多,所以效率不高。 首先,用最通俗的语言解释。假定有3个顶点,A、B、C,如图:转载 2012-06-10 15:27:11 · 560 阅读 · 0 评论 -
hdu 2066 一个人的旅行
我觉得这题应该用floyd算法会更好一点吧,(猜的,还没学,囧......)我是用dijstra暴力水过..........,嗯开始学floydcode#include #include #include #include #include #include #include #include #include #include #include #include原创 2012-06-13 09:08:34 · 749 阅读 · 0 评论 -
hdu 2544 最短路
这道题来得更加赤裸裸.,连题目都这么赤裸裸,纯属熟悉代码code#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #d原创 2012-06-11 16:06:35 · 292 阅读 · 0 评论 -
hdu 1874 畅通工程续
注意此题可能有重边,所以注意把重边消掉;code#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define Si原创 2012-06-11 14:45:51 · 264 阅读 · 0 评论 -
poj 3259 Wormholes
题意 :该死的FJ发现了时光倒流虫洞,问能不能看见过去的自己........其实就是判断有没有负权回路,over了code:#include #include #include #include #include #include #include #include #include #include #include #include #include #i原创 2012-06-24 15:44:32 · 243 阅读 · 0 评论 -
poj 1062 昂贵的聘礼
嗯 poj上很少见的中文题目,不会做,参考了别人的思路,这里就不写了,地址是http://www.cnblogs.com/lyy289065406/archive/2011/07/30/2121678.html写的很详细了,code#include #include #include #include #include #include #include #include原创 2012-06-24 23:35:35 · 256 阅读 · 0 评论 -
poj 3463 Sightseeing
题意:旅行团每天固定的从S地出发到达T地,为了省油要求尽量走最短路径或比最短路径长1单位距离的路径,求满足条件的路径条数这是一次对dijstra的深刻理解 ,好吧......不会做,参考大神思路因为有重边,所以不能使用邻接矩阵(真的不是因为存不下.....),然后为了减少代码复杂度,使用了链式前向星struct Edge{ int v, next, w;}Graph[maxn原创 2012-06-23 17:11:21 · 430 阅读 · 0 评论 -
poj 1125-Stockbroker Grapevine
事实证明 ,我只能切水题, floyd的循环抽时间得搞明白啊啊啊/*ID : Your IDLANG : C++PROB : namenum*/#include #include #include #include #include #include #include #include #include #include #include #include #原创 2012-06-24 01:41:44 · 289 阅读 · 0 评论 -
poj 1789 Truck History
最小生成树入门题,套模版就可以不明白为什么我写的最小生成树这么慢,限时2000,我跑了1047mscode/* ID:yueqiq1 LANG:C++ PROB:*/#include #include #include #include #include #include #include #include #include #includ原创 2012-06-26 13:27:14 · 248 阅读 · 0 评论 -
poj2240 Arbitrage
跟poj1860类似 判断是否存在正环,bellman-ford每个点做一次正环判断,刚开始以为每种货币都要能升值,错了,后来又因为case后面少打了个空格 晕code#include #include #include #include #include #include #include #include #include #include #include #i原创 2012-08-02 19:03:37 · 309 阅读 · 0 评论 -
poj3041 Asteroids
匈牙利算法模版题,不过,把网格的横纵坐标转化为顶点,(x,y)点则转化为连接x,y的一条边,题目则转化为求图的最小覆盖,而二分图的最小覆盖等于最大匹配,所以套匈牙利算法模版code#include #include #include #include #include #include #include #include #include #include #inc原创 2012-07-30 14:43:35 · 294 阅读 · 0 评论 -
Hdu1507 Uncle Tom's Inherited Land*
这个题郁闷了。。。卡了好长时间,不过还好过了。将不相邻的点分为一组,也就是横纵坐标相加为奇数的为一组,另外为一组,然后相邻的在两组中间连一条线,最后求最大匹配code:#include#include#includeusing namespace std;const int dx[]={-1,0,1,0};const int dy[]={0,-1,0,1};struct原创 2012-11-05 21:48:12 · 356 阅读 · 0 评论