图论
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 · 481 阅读 · 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 · 297 阅读 · 0 评论 -
poj2485 Highways
这道题写prim的时候wa了一次,又找了半个小时的错,最后发现竟然是上次写题的时候把INF给改小了 我晕 prim : /* ID: yueqiq PROG: numtri LANG: C++ */ #include #include #include #include #include #include #include #include #include #include原创 2012-07-25 13:27:11 · 375 阅读 · 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 · 308 阅读 · 0 评论 -
poj 1860 Currency Exchange
题意: 有N种 货币,M个交易所,每个交易所互换两种货币,问给你第s种货币,你能否让它越换越多 其实就是找一条能够让他增值的正权回路,这个 用bellman-Ford,spfa 几乎都能做,不过我没试过 说一下思路: 用bellman-Ford,在dis[S]没有增值的情况下进行反向松弛(就是放大);如果不能松弛了就退出来看一下有没有放大就可以了;(这样可以不用判断负环) 用spfa,思路原创 2012-06-24 14:52:13 · 347 阅读 · 0 评论 -
hdu1102 Constructing Roads
先把已知路段的距离设为0,然后prim code /* ID: yueqiq PROG: numtri LANG: C++ */ #include #include #include #include #include #include #include #include #include #include #include #include #include #in原创 2012-07-29 15:58:16 · 338 阅读 · 0 评论 -
poj1094 Sorting It All Out
拓扑排序,好麻烦的说 code/* ID: yueqiq PROG: numtri LANG: C++ */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #inc原创 2012-07-30 12:45:29 · 336 阅读 · 0 评论 -
poj3026 Borg Maze
这道题贡献了2次wa,最后原因是因为A有100个,而S有一个,所以共有101个点,数组应该开到102,而我只开到了101...........坑爹啊 code /* ID: yueqiq PROG: numtri LANG: C++ */ #include #include #include #include #include #include #include #include原创 2012-07-30 10:09:58 · 372 阅读 · 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 · 360 阅读 · 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 · 640 阅读 · 1 评论 -
Hdu1151 Air Raid
求最小路径覆盖Orz code: #include #include #include using 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 · 433 阅读 · 0 评论 -
hdu1608 Girls and Boys
二分图的最大独立点集,在构图的时候因为复制了一遍,所以求出来的最大匹配其实是两倍。 code: #include #include #include using 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 · 450 阅读 · 0 评论 -
poj3020 Antenna Placement
只能说构图是痛苦的。。。。。完全没思路,思路在下面。。。。 无向二分图的最小路径覆盖 = 顶点数 – 最大二分匹配数/2 http://user.qzone.qq.com/289065406/blog/1299322779 code #include #include #include #include #include #include #include #in原创 2012-07-30 15:36:28 · 309 阅读 · 0 评论 -
poj2195 Going Home
是为了学习KM算法敲这道题的,虽然是模版题,但是还是看着解题报告才敲出来的,KM还是有点深奥,有些地方没看懂,原理也是似懂非懂......... 先放一放 等以后再细细揣摩 code #include #include #include #include #include #include #include #include #include #include #in原创 2012-07-31 08:36:25 · 374 阅读 · 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 · 372 阅读 · 0 评论 -
Dijkstra算法详解
在图的应用中,有一个很重要的需求:我们需要知道从某一个点开始,到其他所有点的最短路径。 这其中,Dijkstra算法是典型的最短路径算法。它的关键思想是以起始点为中心,向外一层层扩散,直到扩展到终点为止。Dijkstra算法能够得出最短路径的最优解,不过它需要遍历计算的节点相当多,所以效率不高。 首先,用最通俗的语言解释。假定有3个顶点,A、B、C,如图:转载 2012-06-10 15:27:11 · 585 阅读 · 0 评论 -
hdu 2066 一个人的旅行
我觉得这题应该用floyd算法会更好一点吧,(猜的,还没学,囧......) 我是用dijstra暴力水过..........,嗯开始学floyd code #include #include #include #include #include #include #include #include #include #include #include #include原创 2012-06-13 09:08:34 · 759 阅读 · 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 · 303 阅读 · 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 · 278 阅读 · 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 · 251 阅读 · 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 · 268 阅读 · 0 评论 -
poj 3463 Sightseeing
题意:旅行团每天固定的从S地出发到达T地,为了省油要求尽量走最短路径或比最短路径长1单位距离的路径,求满足条件的路径条数 这是一次对dijstra的深刻理解 ,好吧......不会做,参考大神思路 因为有重边,所以不能使用邻接矩阵(真的不是因为存不下.....),然后为了减少代码复杂度,使用了链式前向星 struct Edge{ int v, next, w; }Graph[maxn原创 2012-06-23 17:11:21 · 443 阅读 · 0 评论 -
poj 1125-Stockbroker Grapevine
事实证明 ,我只能切水题, floyd的循环抽时间得搞明白啊啊啊 /* ID : Your ID LANG : C++ PROB : namenum */ #include #include #include #include #include #include #include #include #include #include #include #include #原创 2012-06-24 01:41:44 · 301 阅读 · 0 评论 -
poj 1789 Truck History
最小生成树入门题,套模版就可以 不明白为什么我写的最小生成树这么慢,限时2000,我跑了1047ms code /* ID:yueqiq1 LANG:C++ PROB: */ #include #include #include #include #include #include #include #include #include #includ原创 2012-06-26 13:27:14 · 263 阅读 · 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 · 322 阅读 · 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 · 309 阅读 · 0 评论 -
Hdu1507 Uncle Tom's Inherited Land*
这个题郁闷了。。。 卡了好长时间,不过还好过了。将不相邻的点分为一组,也就是横纵坐标相加为奇数的为一组,另外为一组,然后相邻的在两组中间连一条线,最后求最大匹配 code: #include #include #include using namespace std; const int dx[]={-1,0,1,0}; const int dy[]={0,-1,0,1}; struct原创 2012-11-05 21:48:12 · 367 阅读 · 0 评论