最短路
文章平均质量分 65
Grit_ICPC
Dielts
展开
-
Poj 1860 Currency Exchange(贝尔曼福特,最长路)
Currency ExchangeTime Limit: 1000MS Memory Limit: 30000KTotal Submissions: 22096 Accepted: 7979DescriptionSeveral currency exchange points are working in our city原创 2015-06-28 23:57:25 · 890 阅读 · 0 评论 -
SDUT 2498 (AOE网上的关键路径 )
大体就是SPFA逆向建图,然后通过入出度的关系找出原点和汇点,主要是将关键路径上的点输出,用一个pre数组记录,所求的最长路上的各个点。且值为上一节点,下标为下一节点。然后将pre数组所描述的路径,通过另一个数组存下来,输出即可。#include#include#include#include#include#include#include#include#in原创 2015-11-28 20:49:35 · 901 阅读 · 0 评论 -
HDU 1839 Delay Constrained Maximum Capacity Path(二分+SPFA)
题目大意:有输入多组,第二行n,m,k三个数,分别表示点的个数,边,总的运输时间,第三行有4个数分别是,a,b,cap,t分别为两个点,及其容量,及此段运输的时间。求其中一条最大的运输量(取决于此路上容量最小的)。 思路:一开始以为是网络流,但是题目说是找到其中一条路上的有时间限制的最大运输量所以应该是最短路。之所以是最短路因为在最短的限制时间内,找到最大的容量。因为数据较大直接原创 2015-11-29 19:59:39 · 468 阅读 · 0 评论 -
Poj 2253 Frogger(floyd||SPFA的变形)
FroggerTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 28785 Accepted: 9348DescriptionFreddy Frog is sitting on a stone in the middle of a lake. Suddenl原创 2015-07-03 23:16:01 · 436 阅读 · 0 评论 -
Arbitrage poj(贝尔曼福特判正权环+串)
ArbitrageTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 17691 Accepted: 7467DescriptionArbitrage is the use of discrepancies in currency exchange rates t原创 2015-07-31 16:14:35 · 931 阅读 · 0 评论 -
HDU 5636 Shortest Path(最短路)
题目大意:给定n个点i和i+1(i#include<map>#include<queue>#include<cmath>#include<iostream>#include<cstdio>#include<stack>#include<cstring>#include<algorithm>#define LL __int64#define inf 0x3f3f3f3f#defin原创 2016-03-09 17:38:52 · 379 阅读 · 0 评论 -
SDUToj 2929 人活着系列之芳姐和芳姐的猪(Floyd+枚举)
人活着系列之芳姐和芳姐的猪Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^题目描述芳姐特别喜欢猪,所以,她特意养了n头猪,建了m个猪圈,顺便在m个猪圈间修了k条无向边,每条边有都有起点u,终点v,距离w。每头猪呆在一个特定的猪圈,有一个问题一直困扰着芳姐,那就是喂猪.....芳姐和猪们约定好,每天去一个固定猪圈去吃原创 2015-07-01 19:20:20 · 641 阅读 · 0 评论 -
SDUT 1867 最短路径问题 (Floyd 多源)
#include<map>#include<queue>#include<cmath>#include<iostream>#include<cstdio>#include<stack>#include<cstring>#include<algorithm>#define LL int#define inf 0x3f3f3f3f#define ls l,mid,rt<<1#def原创 2016-02-26 16:10:26 · 546 阅读 · 0 评论 -
SDUT 2155 Emergency(Floyd)
关键是怎么优化最短路,当我们标记一个点的时候直接就可以以当前这个点去更新其他在集合中的点。#include<map>#include<cmath>#include<queue>#include<cmath>#include<string>#include<cstdio>#include<stack>#include<iostream>#include<cstring>#includ原创 2016-04-11 11:18:10 · 316 阅读 · 0 评论 -
UVA 10806 Dijkstra, Dijkstra. (费用流||最短路)
大意:从1到n然后再返回到1,每条路都只能走一次,最短路是多少。思路1:可以用费用流建图,因为起始点和终点可以走两次所以源汇点流量为2.如果能返回的话肯定flow是>=2的,才能构成回路。思路2:我们可以先找到最短路,然后将路径上的正向权值改为inf,反向权值为原来的相反数。#include #include#include#include#includ原创 2016-05-26 21:45:36 · 507 阅读 · 0 评论 -
PAT L2-1 紧急救援 (SPFA + 多条最短路)
大意: 输入第一行给出4个正整数N、M、S、D,其中N(2第一行输出不同的最短路径的条数和能够召集的最多的救援队数量。第二行输出从S到D的路径中经过的城市编号。数字间以空格分隔,输出首尾不能有多余空格。思路:主要是怎么判断多条最短路的问题,刚开始想的是在if(dis[v]== dis[u]+q[i].w)的时候并且v==d的时候最短路条数++,但是这么想来不能保证这就是原创 2016-05-14 15:57:10 · 1400 阅读 · 0 评论 -
HDU 1535 Invitation Cards(SPFA+双向建图 )
题目大意:求一个从地点然后再从一个地点返回过来,的最短路径.思路:正向+逆向建图#include#include#include#include#define inf 0x3f3f3f3fusing namespace std;bool vis[1000010];int n,head1[1000010],s1,head2[1000010],s2,ans原创 2015-10-13 18:55:59 · 451 阅读 · 0 评论 -
HDoj 1142 A Walk Through the Forest(记忆化收索+dijik)
题目大意:某人要从公司返回家中当从a点到家的距离比b到家中的距离要远,就从a->b,然后从b 再回到家中,问再图中符合这种的道路一共有多少.思路:要处理的地方有两点: 1)从公司到家的路程要近, 2)统计有多少种路程.对于1)的处理要么最小生成树要么最短路,但是这里是求1->2的路程所以只能用最短路处理.在收索的时候还要有一些技巧.#include#i原创 2015-09-24 17:10:59 · 531 阅读 · 0 评论 -
Poj 3259 Wormholes(bellman_ford判负环)
WormholesTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 34833 Accepted: 12724DescriptionWhile exploring his many farms, Farmer John has discovered a nu原创 2015-06-29 20:49:10 · 591 阅读 · 0 评论 -
最短路的小结
一. Dijkstra1不适用于负权边。2.求解“单源点”到其他顶点的最短路。(不适用于任两点最短路)3.有无向图均适用。4.其算法过程类似于最小生成树的prim算法,使用邻接矩阵时在输入之前应进行初始化,map[a][b]=0x3f3f3f3f;输入时输入的a,b距离要与map[a][b]比较,若map[a][b]>要输入的值方可对map[a][b]进行赋值。5算法的描述原创 2015-06-29 10:25:59 · 528 阅读 · 0 评论 -
Poj 1125 Stockbroker Grapevine(floyd小变形)
Stockbroker GrapevineTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 17227 Accepted: 9306DescriptionStockbrokers are known to overreact to rumours原创 2015-07-04 17:04:28 · 469 阅读 · 0 评论 -
Poj 1062 昂贵的聘礼
昂贵的聘礼Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 39908 Accepted: 11582Description年轻的探险家来到了一个印第安部落里。在那里他和酋长的女儿相爱了,于是便向酋长去求亲。酋长要他用10000个金币作为聘礼才答应把女儿嫁给原创 2015-07-03 20:29:29 · 414 阅读 · 0 评论 -
LightOJ 1002 Country Roads(最短路变形(SPFA||贝尔曼))
Time Limit:3000MS Memory Limit:32768KB 64bit IO Format:%lld & %lluSubmit Status Practice LightOJ 1002 DescriptionI am going to my home. There are many cities and many bi原创 2015-08-08 20:42:17 · 782 阅读 · 0 评论 -
SDUToj 2622 最短路径(SPFA)
最短路径Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^题目描述为了准备一年一度的校赛,大家都在忙着往赛场搬运东西,比如气球什么的。这时YY也没有闲着,他也加入了搬运工的行列。已知学校有N个路口和M条路,YY并不是把东西直接搬到赛场,而是从S路口搬运到T路口。由于YY原创 2015-07-01 09:22:08 · 839 阅读 · 0 评论 -
zzuoj 10408 最短路(dijistla||贝尔曼福特 求最少转站点)
题目大意:求从1到n的最少需要转车的次数,(m,n)代表m条路线,n个点(每个点是有方向的).其余m行代表每辆车所经过的车站编号.求最少的从1到n的转车次数,若不能到达输出NO思路:首先要处理输入,用字符串输入,并且注意位数>=2的车站编号的处理,将Map[][]中的所有关联的道路全部赋值为1,整道题的思路是将点与点之间能够缩短的距离缩短后,直接1到n的最短距离输出-1.单源指原创 2015-10-08 20:23:36 · 877 阅读 · 0 评论 -
HDU 1599 find the mincost route(Floyd判最小环)
#include #include #include #include #include #include #define inf 10000000#define ll __int64using namespace std;int Map[600][600],ed[600][600],n,m,cnt;void Floyd(){ int i,j,k; for(原创 2015-10-08 23:58:48 · 358 阅读 · 0 评论 -
HDU 1317 XYZZ(Floyd(传递闭包)+bellmanfd(判断正权环))
题目大意:给定N个房间,然后是n行,每行3个数第行3个数分别代表,第i个房间的能量,与此房间相连的房间个数m分别是m个相连房间,判断是否可从1走到n.思路:1、首先先判断能不能从1走到n,所以用Floyd判断一下传递闭包(就是看看是不是任意两个房间是可达的,判断连通性)。2、用bellman判断是否有正权环,注意判断有无正权环的意图在于是否会在此环上到达n。#inclu原创 2015-10-09 21:45:14 · 620 阅读 · 0 评论 -
HDU 1385 Minimum Transport Cost(最短路Floyd+标记路径)
题目大意:给定n个城市,及其之间的距离,然后有一行数,代表在每个城市中所需要的过路费。求任意两点间的最小费用,及其经过的路径。#include #include #include #include #include #include #include #define inf 0x3f3f3f3f#define ll long longusing namespace原创 2015-10-13 11:23:10 · 433 阅读 · 0 评论 -
ZJOJ Highway Project 3946(单源最短路+贪心)
大意:有n,m表示n个点,m个边,然后就是m条边的信息,分别是x,y,ti,cost.点xy间的路耗费时间是ti,金钱是cost.因为点和边范围为10^5,所以想到复杂度小的SPFA(O(E)).思路:直接是SPFA边求最短的时间的路,同时求耗费的金钱。但是注意耗费的金钱,cost[]数组不能够存从源点到当前点的耗费,因为若 两条路径时间是相等的,但是一条路是好多节点组成的但是耗费多。但是另一个是原创 2016-04-24 14:43:01 · 773 阅读 · 0 评论