POJ3613 k边最短路】的更多相关文章

题目:http://poj.org/problem?id=3613 Floyd求最短路的实质是矩阵的自乘.( i , k )是第 i 行第k列,( k , j )是第k行第 j 列:用它们的max更新( i , j ),正是矩阵的自乘. 给一个矩阵赋予“已走 r 条边”的意义,则已走m条边的矩阵×已走n条边的矩阵得到的是已走m+n条边的矩阵. 用快速幂一样的方法加速,就行了. 重载运算符有待练习. 注意要先ans=a,n - -,原因见注释. PS:(2018.6.14)因为每次把tmp赋值成I…
题意:求n个点中,a到b的第k条最短路 思路: 用最短路求出估价函数的h,再在搜索过程中记录g,利用A*求出 最开始想到的便是A*和最短路,但是脑子抽了,居然一个一个去求- -,TL了后才发现可以倒着求最短路一次搞定. 但是又发现没考虑重边的问题,又换了种姿势终于AC,感觉太习惯于直接开二维数组,这不行啊- - 当from = to时,因为还没出发就已经判定k--,所以在其相等时,k+=1 问题: 1.对算法的理解不够透彻- - 2.在题目上考虑不够全面,导致不得不重写代码 #include <…
题目链接:http://poj.org/problem?id=3613 题目大意: 给出n头牛,t条有向边,起点以及终点,限制每头牛放在一个点上,(一个点上可以放多头牛),从起点开始进行接力跑到终点,求该过程的最小路程. 题解思路: 1.典型的k边最短路,经过且仅经过k条边的最短距离. 2.Floyd求最短路的实质是矩阵的自乘.( i , k )是第 i 行第k列,( k , j )是第k行第 j 列:用它们的max更新( i , j ),正是矩阵的自乘. 给一个矩阵赋予“已走 r 条边”的意义…
题目链接 /* *题目大意: *求出从i到j,刚好经过k条边的最短路; * *矩阵乘法的应用之一(国家队论文): *矩阵乘法不满足交换律,矩阵乘法满足结合律; *给定一个有向图,问从A点恰好走k步(允许重复经过边)到达B点的方案数mod p的值; *把给定的图转为邻接矩阵,即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列就表示从i到j经…
http://acm.uestc.edu.cn/#/problem/show/915 方老师的分身 II Time Limit: 10000/5000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit Status 方老师计算出了走路时间最长的那个分身所用的时间.于是有个特殊的分身(据说是方老师真身!)就不想如此古板的走最短路了!由于这个分身的特殊性,这个分身对于单向边可以当双向边走.但是这个特殊的分身想走最…
题目:http://poj.org/problem?id=3613 题意就是求从起点到终点的一条恰好经过k条边的最短路: floyd+矩阵快速幂,矩阵中的第i行第j列表示从i到j的最短路,矩阵本身代表一个边数状态: 所以矩阵相乘就是floyd算法,两个矩阵相乘就得到它们所代表的边数相加边数的状态矩阵: 原始矩阵自乘k-1次,过程中取min,就得到答案: 因为只是自乘,所以可以使用快速幂. 代码如下: #include<iostream> #include<cstdio> #incl…
题目链接: https://www.luogu.org/problemnew/show/P2886 Update 6.16 最近看了下<算法导论>,惊奇地发现在在介绍\(APSP\) \((All Pairs Shortest Path)\)时的第一个方法就是此法,同时在思考题中看到了不少熟悉的问题,看来<算法导论>还是要多看一下 思路: 看到这题想了很久,想不到比较优的做法,然后看了书上的解法 感觉太妙了,将图论与矩阵加速递推结合了起来从而轻而易举地解决了这道题,实在是神奇. 首…
Cow Relays   Description For their physical fitness program, N (2 ≤ N ≤ 1,000,000) cows have decided to run a relay race using the T (2 ≤ T ≤ 100) cow trails throughout the pasture. Each trail connects two different intersections (1 ≤ I1i ≤ 1,000; 1…
题目连接:http://poj.org/problem?id=3613 题意:从S 到 T 经过边得个数恰为k的最短路是多少. 分析:01邻接矩阵A的K次方C=A^K,C[i][j]表示i点到j点正好经过K条边的路径数,把乘法改为加法,相当于k次Floyd,最后矩阵快速幂优化. #include <cstdio> #include <cstring> #include <string> #include <cmath> #include <iostre…
链接:http://poj.org/problem?id=2449 题意:告诉你有n个顶点,m条边.并把这些边的信息告诉你:起点.终点.权值.再告诉你s.t.k.需求出s到t的第k短路,没有则输出-1. 第K短路裸题,A*算法没接触过.參考了这篇博客:http://www.cnblogs.com/n-u-l-l/archive/2012/07/29/2614194.html 下面大体字摘自这篇博文,讲的非常清楚: 对于第k短路,能够想到的一个比較朴素的算法就是广度优先搜索,使用优先队列从源点s进…