最短路径
smallacmer
这个作者很懒,什么都没留下…
展开
-
http://acm.nyist.net/JudgeOnline/problem.php?pid=115&&Dijkstra城市平叛
南将军统领着N个部队,这N个部队分别驻扎在N个不同的城市。 他在用这N个部队维护着M个城市的治安,这M个城市分别编号从1到M。 现在,小工军师告诉南将军,第K号城市发生了暴乱,南将军从各个部队都派遣了一个分队沿最近路去往暴乱城市平乱。 现在已知在任意两个城市之间原创 2011-10-18 16:55:20 · 1389 阅读 · 0 评论 -
Bus System
这一题太蛋疼了,,,,建图太麻烦了,,,, #include #include using namespace std; #define M 0x7f7f7f7f7f7f7f7fLL typedef long long LL; LL mat[105][105]; LL cor[105]; LL L1,L2,L3,L4,C1,C2,C3,C4; int n,m; LL change(LL x原创 2011-11-10 17:33:12 · 657 阅读 · 0 评论 -
2011 Multi-University Training Contest 1 - Host by HNU&&Earth Hour
这道题木想到竟然可以转发为最短路问题,,让我纠结了近一个下午,,更悲剧的是spfa竟然写错了,,,下面说一下题意,就是在世界日这一天里为了响应号召某大学决定关掉除到图书馆,自习室,寝室的路灯,最后问最多可以关多少路灯,,思路:根据路灯的照射范围判断两个地方是不是相通如果相通就连成边同时把边权设置为1,然后求3次最短路径,,再枚举各个点找到dis1[i]+dis2[i]+dis3[i]最小的那个从而原创 2012-01-03 21:01:55 · 525 阅读 · 0 评论 -
Graph&&北邮比赛题
最短路径题。。dijstra。。 #include #include #include #include #define M 0xffffff #define N 500 #define FOR(i,s,t) for(int i=(s);i<=t;++i) using namespace std; int dist[N]; int map[N][N]; bool visit[N]; int原创 2012-03-06 21:51:02 · 682 阅读 · 0 评论 -
http://poj.org/problem?id=2607&&最短路
Fire Station Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 3169 Accepted: 1130 Description A city is served by a number of fire stations. Some residents ha原创 2012-05-02 15:46:49 · 1009 阅读 · 0 评论 -
http://acm.nyist.net/JudgeOnline/problem.php?pid=510
题意中文不解释。。 思路:以每个物品当做图中的顶点,以优惠的价格为边权,建图,这里让求需要的最少金币,故可以转化为最短路问题,这里引入一个超级源点0,可以看做是每个物品都可以和自己交换,但没有优惠价格,当找不到可交换的物品时(只能和自己交换),则返回当前的最短路径长度,即是所需要的最少金币。 #include #include #include #include #include #inclu原创 2012-05-03 16:38:00 · 908 阅读 · 0 评论 -
http://poj.org/problem?id=1125
裸的最短路径问题,这应该是以前的一道月赛题,一开始用floyd写的,这次用spfa+优先队列优化,还有存图的方式和以前不同。。。 题意:求出在哪个点发起谣言,传到每个人的所用的时间最少,以每个点为源点枚举求最短路。。。。 #include #include #include #include #include #define N 105 #define inf 0xfffff using na原创 2012-05-03 17:47:37 · 617 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=4171
昨天的一道比赛题,这么简单的图论题竟然没A,真的很受伤,,赛后听yyx的点拨后才明白,题意理解错了,题上给了n+1个点和n个路,并不是每个点都和学校相连(当时理解错误),然后枚举除学校的所有点当出口,因为到每个点只有一条路并且都是从报亭出发的,所以如果某个点是出口,那么它到报亭只走一遍,其他都走两遍,,, #include #include #include #include #include原创 2012-05-08 08:38:58 · 691 阅读 · 0 评论 -
Connections between cities&&2009 Multi-University Training Contest 8 - Host by BJNU
Problem Description After World War X, a lot of cities have been seriously damaged, and we need to rebuild those cities. However, some materials needed can only be produced in certain places. So we n原创 2012-07-18 17:06:55 · 632 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=2586&&How far away ?
Problem Description There are n houses in the village and some bidirectional roads connecting them. Every day peole always like to ask like this "How far is it if I want to go from house A to house B原创 2012-07-19 09:09:26 · 737 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=3790&&最短路径问题
Problem Description 给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的。 Input 输入n,m,点的编号是1~n,然后是m行,每行4个数 a,b,d,p,表示a和b之间有一条边,且其长度为d,花费为p。最后一行是两个数 s,t;起点s,终点。n和m为0时输入结束。原创 2011-10-20 16:52:08 · 756 阅读 · 0 评论 -
find the safest road&&http://acm.hdu.edu.cn/showproblem.php?pid=1596
最短路变形,求最长路即可。。。。 AC代码: #include #include #include #include #include #include #define N 1005 #define M 1000005 #define MIN -99999999 using namespace std; typedef struct node { int num;原创 2012-07-26 08:56:21 · 829 阅读 · 0 评论 -
dijstra+优先队列优化
代码: #include #include #include #include #include #include #define N 20005 using namespace std; typedef struct node { int num; int len; int Next; }Node; int res,head[105],dis[105],n;原创 2012-07-25 17:39:56 · 636 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=2680&&Choose the best route
有向图的最短路问题,坑爹啊,,用无向图代码提交后WA了n次后,又仔细看了一遍题,原来是有向图,杯具啊。。。 还有一点需要注意的是,由于要逆向思维,图要反着存,,切记,,, AC代码: #include #include #include #include #include #include #define N 1010 #define MAX 999999999 using原创 2012-07-26 18:03:43 · 904 阅读 · 0 评论 -
http://poj.org/problem?id=3259
第一次用stl中的邻接表写,,以前总怕超时,,,,木想到还行,,,这一题就是判断是不是存在负环,,, 题意:一个农民在自家农场的不同地点发现一堆虫洞,每个虫洞可以回到不同长度的过去,于是这个农民想通个时间旅行回到出发点的”过去”。 #include #include #include #define N 505 #include using namespace std; struct No原创 2011-11-10 15:30:30 · 667 阅读 · 0 评论 -
http://poj.org/problem?id=1062
dijstra+枚举法,,, 题意中文不再说明了,,,,, 解法:求一点到其他所有点的最短路径(还要加上终点的pri[]),在一条路径上点与点之间的等级差不能超过n, 扫描区间因为每条路径都要经过点1,所以依次扫描区间[ lev[1]-n , leve[1] ]......[ lev[1] , lev[1]+n ] 代码: #include #include #include #原创 2011-11-07 20:14:48 · 591 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=2544&&最短路
水题。。。。dijstra算法。。。。 #include #include #include #include #define M 99999999 #define N 105 #define FOR(i,s,t) for(int i=(s);i<=t;++i) using namespace std; int dist[N]; int map[N][N]; bool visit[N]; in原创 2011-10-20 16:28:29 · 557 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=2066&&多源多点
Problem Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰富自己的阅历,还可以看美丽的风景……草儿想去很多地方,她想要去东京铁塔看夜景,去威尼斯看电影,去阳明山上看海芋,去纽约纯粹看雪景,去巴黎喝咖啡写信,去北京探望孟姜女……眼看寒假就快到了,这么一大段时原创 2011-10-20 21:52:23 · 828 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=1874
今天又水了一道dijstra。。。。。。 #include #include #include #include #define M 99999999 #define N 205 #define FOR(i,s,t) for(int i=(s);i<=t;++i) using namespace std; int dist[N]; int map[N][N]; bool visit[N]; i原创 2011-10-21 08:59:44 · 462 阅读 · 0 评论 -
http://acm.nyist.net/JudgeOnline/problem.php?pid=434
一道最小生成树的题,属于模板题,,,,月赛竟然弄了这么长时间,才AC,这道替我用的是prim算法,用krusal也可以,,, #include #include #include #define N 28 #define M 99999999 using namespace std; int map[N][N]; int dist[N]; bool visit[N]; int n,m;原创 2011-10-24 20:47:39 · 444 阅读 · 0 评论 -
http://poj.org/problem?id=1125
Description Stockbrokers are known to overreact to rumours. You have been contracted to develop a method of spreading disinformation amongst the stockbrokers to give your employer the tactical edge原创 2011-10-24 20:22:41 · 505 阅读 · 0 评论 -
SPFA+DP&&http://acm.nyist.net/JudgeOnline/problem.php?pid=203
这几天忙着复习也没顾得刷题,,罪过啊,,O(∩_∩)O~ 这一题是一道小综合题,最短路和0—1背包结合,,调试了好大一会,,纠结,,感觉自己弱爆了,, #include #include #include #include #define N 101 #define M 0x3f #include using namespace std; typedef struct原创 2011-11-24 13:22:30 · 535 阅读 · 0 评论 -
http://acm.hdu.edu.cn/showproblem.php?pid=3371
这是今天xd弄的一个专题,,,,很是坑爹,,,c++过了,但是g++就是过不了,,,让我纠结了半个多小时,,,悲催,,, prim算法: #include #include #define N 505 #define M 99999999 #define FOR(i,s,t) for(int i=(s);i<=(t);++i) using namespace std; int n,m原创 2011-11-03 18:44:26 · 794 阅读 · 0 评论 -
http://acm.hdu.edu.cn/webcontest/contest_showproblem.php?cid=963&pid=1019&ojid=1
这一题是dijstra的变种,,,用的是dijstra的思想和方法,让求的是从一点到另一点的最大的最小值,,,,一开始木有认真读题,,,贡献了5次wa,,,#include #include #include using namespace std; #define MAX 201 #define INF 10000.0f float matrix[MAX][MAX]; int s[MAX];原创 2011-11-04 13:19:12 · 1260 阅读 · 0 评论 -
Arbitrage &&汇率转换问题有向图
这一题重点是建图,,越来越发现建图是解决问题的核心啊,,,,,, #include #include #include #include #include int main() { int n,m,x,y,i,j,k; char name[32][100],temp1[100],temp2[100]; double map[32][32]; int co原创 2011-11-07 16:01:34 · 662 阅读 · 0 评论 -
有向图的多源多点问题,,,
#include #include #include #define N 1001 #define M 111111111 using namespace std; int map[N][N]; int n; int main() { while( ~scanf("%d",&n)!=EOF&&n ) { for(int i=1;i<=n;++i) for原创 2011-11-07 21:54:44 · 528 阅读 · 0 评论 -
邻接表存图。。。
#include #include #include #include using namespace std; #define INF 0x7FFFFFFF #define N 150000 #define M 2000000 typedef struct node { int u; int len; struct node *nex; }NODE; NODE edg[M],*head[N原创 2011-11-08 13:33:17 · 556 阅读 · 0 评论 -
http://poj.org/problem?id=2983
终于用spfa把它AC了,,,这道题把我这几天满满的自信都打击的木有了,,,,,一开始用bellman——ford做的还算顺利,但是我想用spfa做一下,,,于是就向别人那样用了头插法,,但是悲剧的是我每次提交总是一个样WA,,,,我于是上网搜了搜,,发现spfa的都是用的是链表,,,但他们不是用的指针,,而我用的是指针,,,就这一点区别,,我的就是过不了,,,太打击人了,,,心在滴血啊,,,,,原创 2011-11-08 17:16:42 · 608 阅读 · 0 评论 -
HDU Today&&http://acm.hdu.edu.cn/showproblem.php?pid=2112
最短路+字符串处理,,, 这题太迷惑人了,给的n可以那么大,其实图中的顶点数还不到200,因此floyd就能过,但是用G++很可能会超时,因此需要加上外挂。。另外需要注意的是起点和终点一样的情况。 floyd: #include #include #include #include #include #define N 155 #define MAX 99999999 us原创 2012-07-26 15:55:47 · 931 阅读 · 0 评论