随笔分类 -  最短路

hdu 3870 Catch the Theves
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=3870最大流 转换成 最小割 最小割 转换成 最短路代码:#include<iostream>#include<cstring>#include<cstdio>#include<string>#include<set>#include<map>#include<cmath>#include<algorithm>#include<vector>#include<cmath>#include&l 阅读全文
posted @ 2013-05-31 15:36 夜-> 阅读(173) 评论(0) 推荐(0)
zoj 2318 Get Out!
摘要:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1318推荐解题报告:http://www.cppblog.com/Yuan/archive/2010/05/02/114163.html自己对几何题目是一窍不通呀,尤其是精度问题 狂晕,这题也是看了别人的解析思路,把人所在位置移动到原点,其他点也移动相应位置,然后把人的船当成点,这样的话其他岛屿的半径统一加上船的半径就可以了然后相交的岛屿连线,看能不能有一个多边形把原点包起来判别方法,根据点积求角度,根据叉积求正负,然后看有没有负环更新时dist[i][j]>dist[ 阅读全文
posted @ 2013-05-02 18:37 夜-> 阅读(225) 评论(0) 推荐(0)
sgu 103. Traffic Lights
摘要:http://acm.sgu.ru/problem.php?contest=0&problem=103简单的最短路 不过在处理等待时间上有点繁琐代码:#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>#include<cmath>#include<map>#include<set>#include<vector>#include<stack>#in 阅读全文
posted @ 2013-04-19 17:52 夜-> 阅读(263) 评论(0) 推荐(0)
B. Greg and Graph
摘要:http://codeforces.com/contest/295/problem/Bfloyd 算法的本质是动态规划 只有理解其中动态规划的原理 才能更好的运用代码:#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>using namespace std;const int N=505;int a[N][N];int b[N];long long sum[N];int main(){ //freopen(&quo 阅读全文
posted @ 2013-04-18 07:34 夜-> 阅读(250) 评论(0) 推荐(0)
zju 1003. Emergency (25)
摘要:http://pat.zju.edu.cn/contests/pat-a-practise/1003最短路代码:#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<vector>#include<set>#include<map>#include<string>#include<queue>#include<stack>#incl 阅读全文
posted @ 2013-03-11 16:56 夜-> 阅读(164) 评论(0) 推荐(0)
1770. The Party of Ural Champions
摘要:http://acm.timus.ru/problem.aspx?space=1&num=1770假设有可行解根据所给最短路的情况进行分类 枚举两点最短路假设最短路是dist(i,j) 相连情况为 k(i,j)(-1表示没有直接相连,0表示相连了值为0,1表示相连了值为1)1, dist(i,j)>1||dist(j,i)>1 --> k(i,j)==k(j,i)==-1.2, dist(i,j)==1&&dist(j,i)==1 -->k(i,j)==k(j,i)==-1.3, dist(i,j)==0&&dist(j,i)== 阅读全文
posted @ 2013-02-26 16:33 夜-> 阅读(240) 评论(0) 推荐(0)
1065. Frontier
摘要:http://acm.timus.ru/problem.aspx?space=1&num=1065分两种情况1,M==0 的情况 这时枚举任意三个点(不共线) 算长度 取最短2,M!=0 的情况 这时枚举任意点到其它每个点的距离 比如说从i到j 距离 如果所有的M个点都在从i到j向量的右面 则距离可以直接求出 否则暂时为无穷大 然后用 floyd求最短路 最后求最小的环形路代码:#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<ma 阅读全文
posted @ 2013-02-25 16:06 夜-> 阅读(204) 评论(0) 推荐(0)
1575. Yekaterinburg Subway 2
摘要:http://acm.timus.ru/problem.aspx?space=1&num=1575这么狗血的题也有呀 无语了一般都是给出数据然后建图 这题都好 直接给图 自己弄去吧 幸亏有人给了数据 直接copy过来处理一下就可以了简单 floyd代码:#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<map>#include<vector>#include<stack>#include<set& 阅读全文
posted @ 2013-01-23 20:41 夜-> 阅读(304) 评论(0) 推荐(0)
1379. Cups Transportation
摘要:http://acm.timus.ru/problem.aspx?space=1&num=1379二分 最短路代码:#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<map>#include<vector>#include<stack>#include<set>#include<map>#include<queue>#include<algorithm># 阅读全文
posted @ 2013-01-23 09:52 夜-> 阅读(264) 评论(0) 推荐(0)
1016. Cube on the Walk
摘要:http://acm.timus.ru/problem.aspx?space=1&num=1016思路很简单 就是太繁琐一个立方体把所有面按一定的顺序表示的话 无论怎么翻转 一共有24种顺序 如果是涂色的话 在颜色可以相同的情况下 种类有可能变少表示出不同的状态以后就可以 spfa 求最短路了代码:#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<map>#include<vector>#include<st 阅读全文
posted @ 2013-01-20 16:33 夜-> 阅读(191) 评论(0) 推荐(0)
1254. Die Hard
摘要:http://acm.timus.ru/problem.aspx?space=1&num=1254刚开始想多了 依次spfa就可以代码:#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<map>#include<vector>#include<stack>#include<set>#include<map>#include<queue>#include<algo 阅读全文
posted @ 2013-01-19 13:56 夜-> 阅读(250) 评论(0) 推荐(0)
1301. Cube in Labyrinth
摘要:http://acm.timus.ru/problem.aspx?space=1&num=1301一不小心写了一个三维的spfa 思路很简单就是有点繁琐代码:#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<map>#include<vector>#include<stack>#include<set>#include<map>#include<queue>#incl 阅读全文
posted @ 2013-01-18 21:48 夜-> 阅读(209) 评论(0) 推荐(0)
1325. Dirt
摘要:http://acm.timus.ru/problem.aspx?space=1&num=1325在求最短路的时候 如果既可以用bfs 又可以用 spfa 那么一般bfs的效率要高 因为spfa需要多次更新 而bfs只需更新一遍比如说 在点与点之间是一单位长度的话 这时候用 bfs一遍就可以 用spfa的话有可能不止一遍但是如果点与点之间的距离不是一单位长度或者更复杂的话 bfs就不适用了 这时候就得用spfa 了用bfs的时候 用优先队列优化一下就很容易写了代码:#include<iostream>#include<cstdio>#include<cst 阅读全文
posted @ 2013-01-18 15:45 夜-> 阅读(320) 评论(0) 推荐(0)
poj 3083 Children of the Candy Corn
摘要:http://poj.org/problem?id=3083题目不难 就是繁琐呀代码:#include<iostream>#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>#include<vector>#include<set>#include<map>#include<string>#include<queue>#include<stack>#include <io 阅读全文
posted @ 2012-12-05 20:12 夜-> 阅读(161) 评论(0) 推荐(0)
1314. Chase in Subway
摘要:http://acm.timus.ru/problem.aspx?space=1&num=1314最短路 根据罪犯的逃跑线路 从起点求一次最短路 起点距离为0 然后从最后一个点求一次最短路 起点距离是K-1然后比较两个最短路相等的点发现一个小的地方需要注意 定义一个数组 dist1[N] ,sizeof(dist1)的大小就是数组的大小但是如果将数组进行函数调用时 传过去了一个数组指针 dist[] 这时候 sizeof(dist) 为指针占内存大小 需要注意代码:#include<iostream>#include<stdio.h>#include<st 阅读全文
posted @ 2012-12-03 10:47 夜-> 阅读(212) 评论(0) 推荐(0)
1085. Meeting
摘要:http://acm.timus.ru/problem.aspx?space=1&num=1085简单floy 不过有细节需要注意首先是常识性的 tram 好像是环行的 还有就是如果有月票他不需要花钱但前提他要去的点有路可走代码:#include<iostream>#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>#include<vector>#include<set>#include<map>#in 阅读全文
posted @ 2012-11-30 09:49 夜-> 阅读(219) 评论(0) 推荐(0)
1072. Routing
摘要:http://acm.timus.ru/problem.aspx?space=1&num=1072简单 spfa代码:#include<iostream>#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>#include<vector>#include<set>#include<map>#include<string>#include<queue>#include<stac 阅读全文
posted @ 2012-11-30 08:47 夜-> 阅读(389) 评论(0) 推荐(0)
1400. Cellular Characters
摘要:http://acm.timus.ru/problem.aspx?space=1&num=1400简单floyd 不过让我不明白的是 为什么 c++可以过 但是java却过不了呢 郁闷代码:#include<iostream>#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>#include<vector>#include<set>#include<map>#include<string># 阅读全文
posted @ 2012-11-29 11:04 夜-> 阅读(213) 评论(0) 推荐(0)
1162. Currency Exchange
摘要:http://acm.timus.ru/problem.aspx?space=1&num=1162被这句话害了 "Let us call some sequence of the exchange operations simple if no exchange point is used more than once in this sequence."根本没有意义 直径 spfa 就行代码:#include<iostream>#include<stdio.h>#include<string.h>#include<math 阅读全文
posted @ 2012-11-23 18:23 夜-> 阅读(353) 评论(0) 推荐(0)
1806. Mobile Telegraphs
摘要:http://acm.timus.ru/problem.aspx?space=1&num=1806只要算法对 ural 一般不会卡时间的这个题是一个简单的最短路 spfa关键在于找边 找边的方法是 对于每一个点 枚举它的所有可能的变化 搜索是否有和变化后的字符串一样的搜索的时候既可以用 map 也可以 自己写字典树map 写起来简单 不过 字典树效率要高注意边的个数 要在 N*50代码1:#include<iostream>#include<stdio.h>#include<string.h>#include<math.h>#includ 阅读全文
posted @ 2012-11-19 21:41 夜-> 阅读(481) 评论(0) 推荐(0)