
Floyd
文章平均质量分 77
16bit戦争
这个作者很懒,什么都没留下…
展开
-
BZOJ 1266 AHOI 2006 上学路线route 最小割
题目大意:给出一个无向图,问从1到n的最短路发生变化需要割掉最少花费的边权总值是多少。思路:先要把所有最短路上的边搞出来,一个Floyd就可以解决,然后把所有在最短路上的边都加到最大流的图中,然后跑最小割就是答案。CODE:#include #include #include #include #include #define MAX 510#def原创 2015-01-10 19:00:29 · 774 阅读 · 0 评论 -
BZOJ 2165 大楼 倍增Floyd
题目大意:给出一个有向图,问总路径长度>=k最少需要经过多少边。思路:记录几个辅助数组,f[p][i][j]表示走2^p步时最长的路径是多少。g[i][j]表示目前从i到j最长路是多长。f的dp方程是f[p][i][j] = max(f[p][i][j],f[i - 1][i][j] = f[i - 1][j][k]);然后在处理g数组的时候当从1开始的最长路大于等于k的时候就原创 2014-12-29 18:28:36 · 1529 阅读 · 0 评论 -
BZOJ 1706 usaco 2007 Nov relays 奶牛接力跑/POJ 3613 Cow Relays 倍增Floyd
题目大意:求恰好走k步从S到T的最短路。思路:设f[p][i][j]为从i到j恰好走2^p步的最短路,DP方程十分简单:f[p][i][j] = min(f[p][i][j],f[p - 1][i][k] + f[p - 1][k][j]);对总步数T进行二进制拆分,在T有1的位置上,假如这个位置为p,那么就用f[p][][]来更新答案g[][],最后得到的g[][]就是答案矩阵。原创 2014-12-30 09:03:16 · 982 阅读 · 0 评论