图论-----------最短路
SingleK
这个作者很懒,什么都没留下…
展开
-
最短路径 Bellman-Ford算法(模板)
计算最短路径的基础算法,Bellman-Ford算法基础模板const int inf = 0x3f3f3f3f;const int maxn = 1050;struct Edge { int from, to, dist; Edge(int f, int t, int d) :from(f), to(t), dist(d) {}};struct Bellman原创 2018-02-03 15:31:26 · 241 阅读 · 0 评论 -
UVA 12661 - Funny Car Racing(最短路)
题目链接 https://cn.vjudge.net/problem/UVA-12661【题意】 给一个n个结点m条边的有向图(n<=300,m<=50000),每条边是周期性开放和关闭的,每条边用五个整数u,v,a,b,t(1<=u,v<=n,1<=a,b,t<=1e5)表示起点是u,终点是v,通过时间为t秒.这条路会先打开a秒,然后关闭b秒这样子循环下...原创 2018-08-29 13:41:26 · 126 阅读 · 0 评论 -
HDU 6386 - Age of Moyu [2018杭电多校联赛第七场 A](最短路变形)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=6386【题意】 给定一个n个结点m条边的无向图,结点编号为1~n,每条边有一个类型属性,现在要从结点1出发走到结点n,连续地走同种类型的边只会花费1的代价,如果当前边的类型为A,下一步走到了类型为B的边上,就会产生额外的代价,问你最小代价是多少【输入格式】 多组输入,每组数据的第一行为两个整...原创 2018-08-14 14:46:05 · 170 阅读 · 0 评论 -
CodeForces 545E - Paths and Trees(最短路树)
题目链接 https://cn.vjudge.net/problem/CodeForces-545E【题意】 给定一个n个结点m条边的无向图,并给出源点s,让你找出图中权值最小的最短路树,并输出这个权值【思路】 对dijkstra算法稍作修改即可,在松弛操作的时候,在保留最短路的前提下,保正上一条边的权值是最小的,类似一种贪心的思想,最短路径确定的话,如果上一条边的权值最小,那么其余部...原创 2018-04-14 13:49:35 · 561 阅读 · 0 评论 -
PAT甲级 1111 - Online Map(最短路)
PAT甲级1111 题目链接 https://www.patest.cn/contests/pat-a-practise/1111【题意】 输入当前的位置和目的地,在线地图可以推荐几条路径。现在你的任务是向用户推荐两条路径:一条最短,另一条最快,输入确保有解。【输入格式】 单组输入,第一行分别给出两个正整数N(2 <= N <= 500)和M,分别是地图上...原创 2018-03-20 23:23:09 · 309 阅读 · 0 评论 -
Uva 11478 - Halum(二分+差分约束)
题目链接 https://vjudge.net/problem/UVA-11478【题意】 给定一张带权有向图,每次你可以选择一个结点v和一个整数d,把所有以v为终点的边的权值减少d,把所有以v为起点的边的权值增加d,最后要让所有边权最小值大于0且尽量大。对于每组数据输出边权最小值的最大值,如果无法让所有边权都大于0则输出”No Solution”,如果边权最小值可任意大,输出”Infini...原创 2018-02-14 15:20:18 · 221 阅读 · 0 评论 -
Uvalive 4128 - Steam Roller(最短路+思维)
题目链接 https://vjudge.net/problem/UVALive-4128【题意】 有一个r条横线c条竖线组成的网络,你的任务是开着一辆蒸汽式压路机,用最短的时间从(r1,c1)出发,最后到达目的地(r2,c2),其中一些线段上有权值代表全速通过所需要的时间,权值为0的边表示不能通过。由于压路机的惯性较大,对于任意一条边,如果进入这条边之前刚转弯或者离开这条边以后要立即转弯,则...原创 2018-02-20 12:06:01 · 286 阅读 · 0 评论 -
Uva 10537 - The Toll! Revisited(最短路+逆向思维)
题目链接 https://vjudge.net/problem/UVA-10537【题意】 有两种节点,一种是大写字母,一种是小写字母,当时小写字母是要付1各单位的过路费,当时大写字母的时候要付当前自己财务的1/20分之一当做过路费。求最少带多少个物品从起点到终点能在最后交付的时候有k个物品。【思路】 大白书331页例题,要用逆向思维和dijkstra计算最短路的思想来解决这个问题,设...原创 2018-02-07 15:47:23 · 194 阅读 · 0 评论 -
最短路径 Dijkstra算法(模板)
计算最短路径的基础算法,Dijkstra算法基础模板const int inf = 0x3f3f3f3f;const int maxn = 1050;struct Edge { int from, to, dist; Edge(int f, int t, int d) :from(f), to(t), dist(d) {}};struct HeapNode {...原创 2018-02-03 16:10:22 · 347 阅读 · 0 评论 -
Uva 11090 - Going in Cycle!! (判负圈+二分)
题目链接 https://vjudge.net/problem/UVA-11090【题意】 给定一个n个点,m条边的加权有向图,求平均权值最小的回路,对于每组数据输出最小平均值,如果无解输出“No cycle found.”【思路】 可以用二分来找答案,对于一个猜测值mid,判断图中是否存在平均值小于mid的回路,假设存在这样的一条回路,由k条边构成,那么w1+w2+…+wk <...原创 2018-02-12 11:04:19 · 164 阅读 · 0 评论 -
Uvalive 4080 - Warfare And Logistics (最短路树)
题目链接 https://vjudge.net/problem/UVALive-4080【题意】 给定一个n节点m条边的无向图,定义c为每对顶点的最短路之和,要求删掉一条边重新求一个c值c’,求出c’最大值.【思路】 大白书330页例题,如果用floyd算法计算c,每尝试删除一条边都要重新计算一次,时间复杂度为O(n*n*n*m),很难承受。如果用n次Dijkstra计算单源最短路,时...原创 2018-02-06 14:35:26 · 268 阅读 · 0 评论 -
Uva 10917 - Walk Through the Forest (最短路+DP)
题目链接 https://vjudge.net/problem/UVA-10917【题意】 gbn最近打算穿过一个森林,但是他比较傲娇,于是他决定只走一些特殊的道路,他打算只沿着满足如下条件的(A,B)道路走:存在一条从B出发回家的路,比所有从A出发回家的路径都短。你的任务是计算一共有多少条不同的回家路径。其中起点的编号为1,终点的编号为2. 【思路】 现求出以家为源点的所有点的最短路...原创 2018-02-05 22:09:06 · 410 阅读 · 0 评论 -
Uva 11374 - Airport Express(枚举+最短路)
题目链接 https://vjudge.net/problem/UVA-11374【题意】 市民从市区去机场要走机场快线,机场快线分为经济线和商业线两种,你只有一张商业线车票,只能坐一站商业线,其它时候只能坐经济线,忽略换乘时间,找到一条去机场最快的线路。【思路】 大白书329页例题,可以先按照经济线建立无向图,用dijkstra算法分别求出以起点和以终点为源点的最短路,然后依次枚举...原创 2018-02-05 19:59:43 · 423 阅读 · 0 评论 -
Uva 658 - It's not a Bug, it's a Feature! (最短路)
题目链接 https://vjudge.net/problem/UVA-658【题意】 补丁在修复bug时,有时也会引入新的bug,假定有n(n<=20)个潜在的bug和m(m<=100)个补丁,每个补丁用两个长度为n的字符串表示,其中字符串的每个位置表示一个bug,第一个字符串表示打补丁之前的状态(’+’表示bug必须存在,’-‘表示必须不存在,’0’表示无所谓),第二个字符串...原创 2018-02-04 12:42:44 · 561 阅读 · 0 评论 -
Uva 10048 - Audiophobia (Floyd变形)
题目链接 https://vjudge.net/problem/UVA-10048【题意】 输入一个C个点,S个边(C<=100,S<=1000)的无向图,边权表示该路径上的噪声值,当你从某点出发到另外一点时希望路上经过的最大噪声值最小,输入一些询问,每次询问两个点,输出这两点最大噪声值最小的路径。【思路】 floyd算法的变型,只要设d[i][j]为从i出发,到j的最大噪...原创 2018-02-03 20:24:19 · 249 阅读 · 0 评论 -
Uva 247 - Calling Circles(传递闭包 / 强连通分量)
题目链接 https://vjudge.net/problem/UVA-247【题意】 如果两个人直接或间接互相打电话,则说明他们在同一个电话圈里。例如a打给b,b打给c,c打给d,d打给a,则这4个人在同一个圈里;如果e打给f,但是f不能打回给e,那么e,f就不在一个电话圈里,输入n(n<=25)个人和m次电话,找出所有的电话圈,人名是小写字母且不超过25个字符,不会有重名的情况。...原创 2018-02-03 19:39:55 · 362 阅读 · 0 评论 -
最短路径 Floyd算法(模板)
计算最短路径的基础算法,Floyd算法基础模板const int inf = 0x3f3f3f3f;const int maxn = 1050;int n, m;int d[maxn][maxn];void floyd() { for (int k = 0; k < n; ++k) { for (int i = 0; i < n; ++i) {原创 2018-02-03 16:28:00 · 240 阅读 · 0 评论 -
UVA 10816 - Travel in Desert(最小瓶颈路+最短路)
题目链接 https://cn.vjudge.net/problem/UVA-10816【题意】 给定一个n个点m条边的无向带权图(n<=100,m<=10000)以及起点和终点。边上有两种权值,路径长度和温度,要求在所走路径中的温度的最大值最小的前提下,走最短路径,输出路径以及最大温度和对应的长度.【思路】 先用最小瓶颈路求出这个最大温度,然后将边权中所有温度不低于此温度...原创 2018-09-12 17:25:22 · 226 阅读 · 0 评论