最短路
文章平均质量分 77
九野的博客
这个作者很懒,什么都没留下…
展开
-
poj 3767 I Wanna Go Home
题意:n个点(从1-n编号)m条边下面m行 u v dis 表示双向边u v的距离n个点表示 每个点被势力1或2占据这里保证1 城市由势力1占据,2城市由势力2占据 思路:求2遍spfa()从1城市开始求所有 走到所有都是势力1的城市的距离,存在d[1]数组中,d[1][ i ] 表示经过 i 城市任意都是势力1占领的城市的点能到达 1点的最短距离再由2城市跑一原创 2013-08-18 19:54:09 · 1576 阅读 · 0 评论 -
SGU 185 Two shortest 最短路删边优化内存+网络流
题目链接:点击打开链接题意:给定n个点m条无向边和边权(无重边)找2条从1-n点路径不相交的最短路(2条路必须都是最短)最先是用费用流跑,结果各种mel然后最短路优化,,,,把图里所有不在最短路上的边删掉然后其实跑网络流就可以了,,,开始还是mle,后来把邻接表的from去掉才过,,#include#include#include#include#inc原创 2014-05-25 22:34:12 · 1640 阅读 · 0 评论 -
HDU 2485 求删最少点使得 边权=1的有向图最短路>k
题意:给定n个点 m条有向边 k下面m条有向边问删最少几个点使得1-n的最短路>k这样思考:如果k = inf,那么我们只要给每个点拆点一下,限流为1,然后原图的边容量为inf,跑个最小割即可(这样建图就能求出删点的最小割,而不是删边的最小割)注意这样建图,起点拆点出的边容量=inf,终点同理而此题中,我们只需要把所有在满足k条件的所有路径上的点加入图即原创 2014-05-18 20:56:28 · 5095 阅读 · 0 评论 -
URAL 1750 Pakhom and the Gully 计算几何+floyd
题目链接:点击打开链接gg。。。#pragma comment(linker, "/STACK:1024000000,1024000000")#include #include #include #include #include #include #include using namespace std;#define ll int#define point Poin原创 2014-07-24 11:53:56 · 1308 阅读 · 0 评论 -
ZOJ 3794 Greedy Driver spfa
题意:给定n个点,m条有向边,邮箱容量。起点在1,终点在n,开始邮箱满油。下面m行表示起点终点和这条边的耗油量(就是长度)再下面给出一个数字m表示有P个加油站,可以免费加满油。下面一行P个数字表示加油站的点标。再下面一个整数Q下面Q行 u v 表示在u点有销售站,可以卖掉邮箱里的任意数量的油,每以单位v元。问跑到终点能获得最多多少元。先求个每个点的最大剩原创 2014-06-02 17:31:21 · 2123 阅读 · 0 评论 -
POJ 1556 计算几何+最短路
#include#include#include#include#include#include#include#include#include#include#include#include#define N 1050#define ST 1001#define EN 1002#define M 10000#define inf 1原创 2013-09-20 12:02:51 · 2122 阅读 · 0 评论 -
SGU 479 Funny Feature spfa
题目链接:#include #include #include using namespace std;const int N = 205;const int dx[] = {-1, 1, 0, 0};const int dy[] = {0, 0, 1, -1};int a[N][N], x[N*N], y[N*N];bool vis[N][N];queue原创 2014-09-18 16:52:33 · 985 阅读 · 0 评论 -
UVALive 4885 Task 差分约束
题目链接:点击打开链接题意:有n个任务 m个限制条件1、task i starts at least A minutes later than task j 表示 i - j >= A2、task i starts within A minutes of the starting time of task j表示 i - j 问:每个任务开始的时间。 求一个任意解原创 2014-09-05 23:39:12 · 1378 阅读 · 0 评论 -
SGU 298 King Berl VI 差分约束 并使得min(dis[n]-dis[1])
题目链接:点击打开链接题意:给定n个点m条约束。下面输出 u v x 表示:dis[u] - dis[v] >= x然后建图就是 u->v 边权为-x输出一个解。若有多解输出一个 dis[n] - dis[1] 最小的解。思路:正图求个最大解,反图求个最小解。对于一个点的 最大解题目要求x[N]-x[1]最小,那就令x[N]为其最小解原创 2014-09-11 00:47:20 · 1934 阅读 · 0 评论 -
HDU 4360 As long as Binbin loves Sangsang spfa
题意:给定n个点m条边的无向图每次必须沿着LOVE走,到终点时必须是完整的LOVE,且至少走出一个LOVE,问这样情况下最短路是多少,在一样短情况下最多的LOVE个数是多少。有自环。#include #include #include #include #include #include using namespace std;typedef __int64 ll原创 2014-09-28 19:04:34 · 1252 阅读 · 0 评论 -
HDU 3681 Prison Break floyd+状压+二分
题目链接:点击打开链接题意:给定n*m的矩阵:F:起点(有且仅有一个)D:坏点(不能走到这个点)G:能量池(走到这个点可以选择使用这个点的能量池,把电池充满,也可以暂时不用,只能使用一次)Y:目标点问:遍历所有Y点需要最小的电池容量是多少。开始电池满电,每走一步消耗一格电。Y+G的个数思路:状压YG,前面几位表示Y,后面几位表示G。先跑个floyd,原创 2014-11-14 17:48:48 · 1168 阅读 · 0 评论 -
CodeForces 59E Shortest Path 用边跑最短路
题目链接:点击打开链接题意:给定n个点m条边的无向图,d个限制条件。下面m行给出边下面d行给出限制条件。找出一条 1->n的路径。每个限制条件3个数 a b c 表示这3个点不能连续走,即路径上不能存在 ···abc···或者···cba···输出这样的最短路径长度以及具体路径。思路:因为是3个点不能连续走,所以我们用边来跑最短路即可,这样就变成2条边不能连续走原创 2015-02-07 20:58:29 · 1645 阅读 · 0 评论 -
Codeforces 429B Working out bfs构造
题目链接:点击打开链接题意:给定n*m的矩阵有一个人a从左上角↖走到右下角↘,只能↓或→走另一个人b从左下角↙走到右上角↗,只能↑或→走使得2个人的路径有且仅有一个格子是相交的。统计2个人的权值和(相交格子的权值和不计)问最大的权值和是多少。思路:首先转换一下题意,也就是找一个格子与4个角落连不相交的线。我们观察相交的那个格子,那个格子的上下左右必然对应着一个角原创 2014-05-12 15:34:42 · 2052 阅读 · 0 评论 -
Codeforces 96D Volleyball spfa
题目链接:点击打开链接题意:给定n个点m条边的无向图起点、终点下面m行表示边和边权再下面n行表示每个点有一辆出租车,这辆出租车能开的最远距离和搭乘这辆车的费用问到终点的最小费用开始感觉复杂度太大不好下手,暴力出奇迹。。Y一下即可得到 spfa套spfa注意inf要足够大,__int64#include#include#include#inclu原创 2014-06-23 18:12:33 · 1332 阅读 · 0 评论 -
HDU 4707 Pet && 2013 ACM/ICPC Asia Regional Online —— Warmup
题意:给定n个点和距离dis下面是一棵树求到0点距离>dis的点有几个spfa 水过#include #include #include #include #include #include #include #include #include #include using namespace std;long long gcd(long原创 2013-09-08 17:48:59 · 1958 阅读 · 0 评论 -
HDU 4318 Power transmission
题意:给定n个点,下面n行i行:k表示i点连接的边数i连接的点 边权值最后一行 起点 终点 输入起点电量求一条最短路dij裸题,注意边排序。用spfa可以防止边排序错误的dij无限TL #include#include#include#include#include#include#include#include#include#原创 2013-09-18 19:22:06 · 1990 阅读 · 0 评论 -
POJ 2570 传递闭包 Floyd
题意:n个点下面边 以(0,0)输入结尾u v 字母, 表示u v间有 xx个字母 问:(0,0)输入结尾问 u v间的路径 都存在的字母有哪些,输出这些字母 #include #include #include #include #include #define N 250#define M N*N+2#define inf64 0原创 2013-09-22 14:39:43 · 2024 阅读 · 0 评论 -
POJ 2502 建图+spfa模版
题意:第一行给定起末点坐标下面每行输入地铁线路,(-1,-1)表示该线路输入结束,读到EOF任意点都可达,速度是10km/h ,地铁线路上相邻2点速度是40km/h ,问最短时间是多少分钟 #include #include #include #include #include #define N 250#define M N*N+2#define in原创 2013-09-22 14:01:22 · 2255 阅读 · 0 评论 -
POJ 1724 最短路费用限制
迪杰斯塔拉裸题最大花费n个点m条有向边起点终点 路径长度 路径花费 问:在花费限制下,最短路径的长度 #include #include #include #include #include #include #include #include #include #include #include #include #原创 2013-09-20 19:41:57 · 2317 阅读 · 0 评论 -
POJ 1734 求最小环路径 拓展Floyd
题意:n个点 m条无向边下面m条有权无向边问图中最小环的路径学习的拓展Floyd,先找环后松弛dfs会做的简单一点 //搜索比较好想#include #include #include #define find_min(a,b) a<b?a:b#define N 150#define inf 0x7ffffffusing namespace原创 2013-09-22 07:50:14 · 2297 阅读 · 0 评论 -
HDU 4771 BFS + 状压
题意:给定n*m的地图#为墙 @为起点下面K个坐标 问:遍历K个给定坐标,需要的最小步数 思路:因为K 最大只有4 状压 当前是否走过某点用二进制 的 i 位 0、1表示 第i个点是否走过 与hdu 1429题相似 http://www.cnblogs.com/xianxingwuguan/p/3301318.html #include原创 2013-11-09 18:06:43 · 3651 阅读 · 5 评论 -
POJ 3592 强连通缩点+spfa最长路
题意:给定n*m的地图 (从(0,0) 开始)#代表墙,*代表传送门(能传送到的坐标在下面依次给出),数字代表宝藏数(每次经过能且仅能取走一块宝藏)起点在(0,0), 终点任意,且每次只能↓或→,或者传送问:最多能拿到多少块宝藏 思路:因为能传送,所以会出现环形路径,那么我们把能构成的环形路径的点缩点得到一个点,并把该点权值设为 环形路径内所有的点权和。 对于原创 2014-01-16 17:46:56 · 1711 阅读 · 0 评论 -
POJ 3160 求有向图(点权)遍历的最大权值 强连通缩点+最长路
题意:给定n个点 m条有向边的图 每个点的点权问:遍历一遍图能得到的最大点权(对于经过的点,可以选择是否获得该点点权,但每个点只能被获得一次)起点可以任意。 思路:我们把有向图缩点为有向的缩点树,则某一强连通块的权值就是该连通块下的 所有正点权值和 这样我们就可以得到一个有向无环图,显然我们选择的起点是入度为0 的点,因为所有入度不为0的点 都能从别的点走原创 2014-01-16 20:25:24 · 4237 阅读 · 0 评论 -
HDU 3191 有向图次短路条数
题意:给定n个点(点标[0,n-1])m条有向边,起点和终点问次短路的条数(一定存在次短路权值>最短路)记录每个点的最短路,次短路的长度和方法数则当更新最短路时就要把旧的最短路路径赋给次短路,剩下的状态转移还是比较明显的而所有可转移的点中优先转移先更新最近的点。则如此更新有些类似bfs更新过就不再更新该点。因为给出的图中所有边{u,v,dis},u必原创 2014-03-29 10:52:16 · 1870 阅读 · 1 评论 -
HDU 4725 The Shortest Path in Nya Graph priority_queue + spfa
#include #include #include #include #include #include #include#include#include#define N 300050#define inf 100000000#define Mid(x,y) ((x+y)>>1)#define L(id) tree[id].ch[0]#define R(id) tre原创 2014-04-01 16:17:52 · 1072 阅读 · 0 评论 -
Codeforces 575G Run for beer 最短路
题解链接:http://www.cygmasot.com/index.php/2015/09/07/codeforces_575g/题目链接:http://codeforces.com/contest/575/problem/GG. Run for beertime limit per test1 secondmemory limit原创 2015-09-07 20:15:52 · 2821 阅读 · 0 评论