/* ** 题目要求过最少k条边的最短路 */ #include <iostream> #include <cstdio> #include <cstring> #include <queue> #include <algorithm> using namespace std; const int maxn = 5010; const int maxm = 200010; const int INF = 1<<31-1; struct…
题意:       给你一个无向图,然后给了一个起点s和终点e,然后问从s到e的最短路是多少,中途有一个限制,那就是必须走k条边,路径可以反复走. 思路:       感觉很赞的一个题目,据说证明是什么国家队集训队论文什么的,自己没去看那个论文,就说下我自己的理解吧,对于这个题目,我们首先分析下Floyd,那个算法的过程中是在更新的dis[i][j]上再更新,再更新...,是想一下,我们每次都把更新的结果存下来,就是每次答案数组初始化全是INF,然后用当前的dis数组和原始的map来更新,那么更…
http://poj.org/problem?id=3613 s->t上经过k条边的最短路 先把1000范围的点离散化到200中,然后使用最短路可以使用floyd,由于求的是经过k条路的最短路,跑k-1次"floyd"即可(使用矩阵快速幂的思想). 把给定的图转为邻接矩阵,即A(i,j)=1当且仅当存在一条边i->j.令C=A*A,那么C(i,j)=ΣA(i,k)*A(k,j),实际上就等于从点i到点j恰好经过2条边的路径数(枚举k为中转点).类似地,C*A的第i行第j列就…
hdu4396:http://acm.hdu.edu.cn/showproblem.php?pid=4396 题意:一个无向带权图,然后给出起点s,终点e,让你求s到e的最短路径,但是这里的路径有要求的.每经过一条边会得到10单位的财富,这条路径必须得到的财富至少k值. 题解:一开始以为是DP,看了别人的代码,才知道了这就是传说中的二维最短路径.然后学习了一下,其实,就是图上的DP.dist[i][j]表示到达i点得到j个财富的最短路径.然后,利用spfa跑最短路,在这个过程中不断更新dist数…
在掌握POJ 2774(两个串求最长公共子串)以及对Height数组分组后,本题还是容易想出思路的. 首先用字符集外的不同字符连接所有串,这是为了防止两个后缀在比较时超过某个字符串的分界.二分子串的长度,扫描height数组,判定是否有某个分组来源与至少K个原字符串(本题要求出现超过n的一半次). #include <iostream> #include <vector> #include <algorithm> #include <string> #inc…
题意就是给一列数字,求最长的一个子串,并且满足子串在原数串中出现至少K次,子串可以重叠. 解法是将问题转为判定性问题,二分子串的长度,判定是否满足重复至少K次.判定方法是经典的根据子串长度将Height数组分组,看某一分组是否至少含有K个元素. 1 #include <iostream> #include <vector> #include <algorithm> #include <string> #include <string.h> #in…
你可以从任意起点开始起跳最多K次 每次跳你可以选择往右或者往下跳 从(x1,y1)跳到(x2,y2) 消耗的能量是曼哈顿距离-1 但是如果每次跳的起点和终点格子里的数字是相同的为X的话你会得到X能量 问你跳K次能不能把整个图刚好跳完(每个点被经过一次) 如果可以的话输出能量的最大值 解:和最小链覆盖一样先把每个点拆成入点和出点 左边是出点 右边是入点 然后按照题意建好边 重要的是我们怎么限制最多起跳K次这个条件 解决方法是Add(S,S',K,0) 然后S'朝右边每个点连一条容量为1费用为0的边…
题意:求n个点中,a到b的第k条最短路 思路: 用最短路求出估价函数的h,再在搜索过程中记录g,利用A*求出 最开始想到的便是A*和最短路,但是脑子抽了,居然一个一个去求- -,TL了后才发现可以倒着求最短路一次搞定. 但是又发现没考虑重边的问题,又换了种姿势终于AC,感觉太习惯于直接开二维数组,这不行啊- - 当from = to时,因为还没出发就已经判定k--,所以在其相等时,k+=1 问题: 1.对算法的理解不够透彻- - 2.在题目上考虑不够全面,导致不得不重写代码 #include <…
参考: K最短路径算法之Yen's Algorithm Yen's algorithm 基于网络流量的SDN最短路径转发应用 K条最短路径算法:Yen's Algorithm 算法背景 K 最短路径问题是最短路径问题的扩展和变形.1959 年,霍夫曼(Hoffman) 和帕夫雷(Pavley)在论文中第一次提出k 最短路径问题. k 最短路径问题通常包括两类:有限制的k 最短路问题和无限制的K 最短路问题. 前者要求最短路径集合不含有回路,而后者对所求得的最短路径集合无限制. 算法简介 Yen'…
分层图可以处理从图中选取k条边使其边权变为0,求最短路 Description 在你的强力援助下,PCY 成功完成了之前的所有任务,他觉得,现在正是出去浪的大好时光.于是,他来到高速公路上,找到一辆摩的前往几千公里以外他心仪的那家黄焖鸡米饭. 由于 PCY 的品味异于常人,途经几百个城市的黄焖鸡米饭他都不屑一顾,他只愿意前往他心中最好的那家,但是为了一碗二十块钱的黄焖鸡米饭,他不愿意花上几千块的路费,他希望路费尽量少.高速路上的警察叔叔被他的行为所打动,于是在多方协调下,最多 K 条城市之间的高…