
最短路
文章平均质量分 58
keyboarder_zsq
你所认为的极限,其实是别人的起点。
展开
-
Lightoj1002 【搜索】
题意:两两之间的点的花费就是:从A点到B的一条路上某段的最大权值;给一个起点,求到各起点的最小花费。思路:一开始的思路:n不是才500,我先建个图,然后DFS一下,不对,是2500;如果直接暴搜,肯定T了。因为可能有一个环,然后你不能处理一个节点的向上节点。= =、T在这里,所以每次暴搜就相当于每次暴搜了整幅图;一开始写了一发,还以为再一次深刻理解DFS,然后T的我一脸懵逼原创 2016-10-16 19:46:24 · 665 阅读 · 0 评论 -
HDU1598【最小生成树拓展】
参考自 http://www.cnblogs.com/nanke/archive/2012/02/13/2350008.htmlPS:没想到最小生成树的kruskal算法从小到大枚举边,然后MAX-MIN就保证了最小。不过居然没想到这个方案,就是二分枚举差值,然后跑最短路;原创 2016-10-08 00:05:29 · 351 阅读 · 0 评论 -
POJ3463【次短路】
转自:http://www.cnblogs.com/jackge/archive/2013/04/29/3051273.html算法:最短路和次短路。Dijkstra算法。采用邻接表建图。总结:不要用邻接矩阵。因为有重边。dis[x][2]:dis[x][0]表示起点到x的最短路、dis[x][1]表示起点到x的次短路;arr[x][2]:arr[x][0]表示起点转载 2016-11-15 22:33:08 · 489 阅读 · 0 评论 -
lightoj 1074【spfa判负环】
题意:给你一幅图,dis(u->v)的权值就是(w[v]-w[u])*(w[v]-w[u])*(w[v]-w[u]),所以有可能是负的,给你n个询问,给出最短路,长度思路:spfa判个负环就好了;但是。。。。没有考虑与负环相连的所有都是会越来越来,所以每次有负环,要搜一下,把整块拿掉100611 12 9 8 7 1065 61 22 53 15原创 2016-11-29 22:48:03 · 424 阅读 · 0 评论 -
lightoj 1099【dijkstra/BFS】
题意:求 1-N 的第二长路,一条路可以重复走if two or more shortest paths exist, the second-shortest path is the one whose length is longer than those but no longer than any other path思路:一开始想的就是:我只要在spfa中更新的时候记录原创 2016-11-15 21:28:40 · 480 阅读 · 0 评论 -
5-5 城市间紧急救援 (25分)【最短路spfa】
5-5 城市间紧急救援 (25分)作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上。当其他城市有紧急求助电话给你的时候,你的任务是带领你的救援队尽快赶往事发地,同时,一路上召集尽可能多的救援队。输入格式:输入第一行给出4个正整数NN、M原创 2016-11-24 22:35:08 · 1162 阅读 · 0 评论 -
ZOJ3166【找环值最小】
题意:给你一幅图,要你找一个hotel能够满足出去回来,而且保证权值最小;思路:可以搜环,然后取最小权值环,拿个点;floyd方便,初始话自己到自己就是无穷,然后就枚举一下给出的hotel就好了#includeusing namespace std;const int N=1e2+10;const int INF=0x3f3f3f3f;int ma[N][N],ho原创 2017-01-17 16:54:28 · 359 阅读 · 0 评论 -
POJ3268【最短路】
题意:n个点m条有向边,每个点有一头牛,每头牛会沿着各自的最短路先到x点,然后又从x点到各自的点,求这些牛中间最短路程最大的牛。思路:从x点到各点的最短路不用说了,裸的最短路;但是从所有点到x的最短路,那不就是路线反一下,然后求x到所有点的最短路么?//#include#include#include#include#include#includeusing n原创 2017-02-02 01:35:11 · 425 阅读 · 0 评论 -
PAT 1087【二级最短路】
二级最短路+二级最短路,就是DP过程吧。代码稍微注释一些,毕竟贴代码不好。。#includeusing namespace std;typedef long long LL;const int INF=0x3f3f3f3f;const int N=4e4+10;struct asd{ int cost; int to; int next;}e[N];int head[2原创 2017-03-11 11:13:34 · 548 阅读 · 0 评论 -
CodeForces505B【floyd】/C【记忆化搜索】
CodeForces505B题意:有M种不同颜色的线,给出这样的图,然后q个询问,问两点可以由多少种线连接。思路:其实这题很水,也是不必写题解的。 但是呢!wa了两遍woc… 写这题主要也是看到了大哥曾经写wa了。。然后他还没补!(真是怠惰 然后我直接就是100次floyd,然后wa了!!!不讲道理啊!这都wa! 然后实在想不出,也不想去打什么BFS/DFS/并查集,然后就去题解看看呗,然后原创 2017-11-12 14:29:04 · 620 阅读 · 0 评论 -
51nod1459【二级最短路】
标签说的是BFS。。。 太菜,不知道怎么BFS。。。是不是spfa写,就叫BFS。。。感觉不是。。。。 只是二级最短路的写法,直接搞就很容易了,简单题;#include <bits/stdc++.h>using namespace std;typedef long long LL;const int INF=0x3f3f3f3f;const int N=5e2+10;int val[N];原创 2016-09-27 23:45:10 · 403 阅读 · 0 评论 -
HDU 3499【最短路】
题意: 给你一幅图,然后起点终点,然后有一个条件是可以使某条边的花费减半,求最短路的最小花费。 思路: (来自大哥) 最短路的时候多一维,途中是否有花费减半的边; 然后转移,如果上一条有减半的,这一条一定只能转移到不能减半,上一条没有减半的,这一条可以减半也可以不减半。 具体处理就是一个二维的处理,网上说分层图,其实我感觉就是DP的思想,还有有一种从一张图跑到另一张图的feel。 后来原创 2016-09-20 22:17:14 · 712 阅读 · 0 评论 -
CodeForces 689B【最短路】
题意: 给你一副图,给出的点两两之间的距离是abs(pos1-pos2),然后给你n个数是表示该pos到x的距离是1. 思路: 直接建边,跑spfa就好了。虽然说似乎题意说边很多,其实只要建一下相邻的点的边就好了,这样的图的性质还是得到了;// d*##$.// zP"""""$e. $" $o//4$ '$原创 2016-09-20 22:11:04 · 442 阅读 · 0 评论 -
BFS+PRIM
在一个y行 x列的迷宫中,有可行走的通路空格’ ‘,不可行走的墙’#’,还有两种英文字母A和S,现在从S出发,要求用最短的路径L连接所有字母,输出这条路径L的总长度。一格的长度为1,而且移动的方法只有上、下、左、右,所以在无任何墙的情况下(但“墙#”是必须考虑的,这里只是为了说明)任意两个字母之间的距离就是直接把 横坐标之差 加上 纵坐标之差 注意的是,可行的路为 字母 和 空格 不可行的转载 2016-03-24 23:03:09 · 424 阅读 · 0 评论 -
BestCoder Round #74 (div.1) 1002Shortest Path(hdoj5636)
哈哈哈哈,我就知道这道题目再扔给我,我还是不会,就是这么菜,哈哈哈 一开始官方题解就没搞懂…然后就看了一下别人的代码,水水过就算了。今天拿到…GG;题意: 一开始,有一张原图,有一条长度为n的链. 节点i和i+1之间有长度为1的边. 现在又新加了3条边, 每条边长度都是1. 给出m个询问, 每次询问两点之间的最短路. 然后让你算出对于每组数据, 输出一个整数S=(∑i=1mi⋅zi) mo原创 2016-05-04 19:07:55 · 546 阅读 · 0 评论 -
每天一水poj1502【最短路】
#include<iostream> #include<cstdio> #include<string.h> #include<algorithm> using namespace std; #define INF 0x3f3f3f3f #define N 110 int ma[N][N]; int n; int dis[N];原创 2016-05-19 14:21:32 · 444 阅读 · 0 评论 -
hdoj1596【spfa,松弛】
积压很久的一道。。。一看直接spfa水过。。但是看那个safest怎么求得?松弛的时候取大。#include <bits/stdc++.h>using namespace std;typedef long long LL;typedef unsigned long long ULL;const double eps=1e-5;const double pi=acos(-1.0);cons原创 2016-07-13 23:52:17 · 567 阅读 · 0 评论 -
国产spfa瞎几把嗨
//在各种不利的因素下,我居然就这么水过了这题最短路,然而还wa了一次,因为路是双向的。。。 //这题姿势很多啊,但自从会了国产spfa就是最短路能搞的就是spfa,优点太多了!!! //也是瞎几把打,还是在Dev C++上打完编译,执行,然后过了,困得要死。。。 回寝室睡觉;#include<cstdio>#include<iostream>#include<string.h>#i原创 2016-05-16 16:29:56 · 618 阅读 · 0 评论 -
HDOJ1874最短路【spfa】
//不知道切过这道题目几次了,这次又wa了...双向路啊。。。。这波简直无奈了,今晚又是浪成狗!!!!#include#include#include#include#includeusing namespace std;#define INF 0X3f3f3f3f#define N 100010struct asd{ int to; int w原创 2016-02-26 10:08:53 · 563 阅读 · 0 评论 -
dijkstra算法的应用(poj2387)+堆优化【还没学C艹很尴尬,不理解的先不写了,未完,待续...】
一题非常简单的最短路题目,但是我就是很撒比的错在了,1.初始化;2.判断重边#include <stdio.h>#include <iostream>#include <string.h>#include <math.h>#include <stdlib.h>#include <queue>#include <set>#include <stack>#include <algorit原创 2016-03-19 09:04:19 · 483 阅读 · 0 评论 -
hdoj3790 【最短路】
这一题啊,其实还是很简单的~(A掉了就很简单啊~) 思路: 松弛,然后在里面维护一个小最短路~; A掉这一题,感觉松弛的理解又上了一个台阶,以及spfa的原理,最短路用到的原理就是松弛,先把图构造到最优,然后输出一下就好了~ 还是最喜欢国产spfa!!强大,无敌!!! 所以还是在spfa上搞搞~~#include <iostream>#include <stdio.h>#include原创 2016-07-05 21:11:22 · 388 阅读 · 0 评论 -
poj1724【最短路】
题意: 给出n个城市,然后给出m条单向路,给出了每条路的距离和花费,问一个人有k coins,在不超过money的情况下从1到n最短路径路径。 思路: 我相信很多人在上面那道题的影响下,肯定会想想,在保证最短路的前提下维护下最小花费?还是保证最小花费下维护一个最短路?这样两个想法的bug都非常明显啊。第一个,那是大错特错了,人家首要给你的条件满足<=k,你还抱住最短路长度不放,给你wa是同情。原创 2016-07-20 21:36:11 · 829 阅读 · 0 评论 -
poj1511【最短路spfa】
题意: 计算从源点1到各点的最短路之和+各点到源点1的最短路之和;思路: 源点这个好做啊,可是各点到源点,转个弯就是反向建边然后求一下源点到各点的最短路,就是各点到源点的最短路,在两幅图里搞;贴一发挫code……….#include <iostream>#include <cstdio>#include <string.h>#include <algorithm>using namesp原创 2016-08-10 21:09:11 · 939 阅读 · 0 评论 -
AtCoder Regular Contest 061 E - すぬけ君の地下鉄旅行【最短路】
具体题解又要搬大哥的了,嘿嘿~ 请点击:G点我 这道题目的难点就是同一家公司的路直接走不需要再花费,然后多了一个公司这个东西,这个不像是边的副权值(瞎说的)之类的东西,这是对于路来说的,路的属性。。。 其实稀里哗啦说了那么多,真的觉得这个方法实在是太棒了; 将点和公司组合构造新点,然后新点的路我们可以构造,根据题意,同一家公司的路不需要花费即(u,c)《=》(v,c)之间距离=0; 然后u原创 2016-09-16 22:24:56 · 1746 阅读 · 0 评论