先Floyd求牛到机器最短距离,然后二分枚举最长的边。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define INF (1 que; 31 que.push(vt); 32 ...
分类:
其他好文 时间:
2015-10-03 19:23:21
阅读次数:
278
一不小心速度就成了#1....这道题显然是求最长反链, 最长反链=最小链覆盖.最小链覆盖就是先做一次floyd传递闭包, 再求最小路径覆盖. 最小路径覆盖=N - 二分图最大匹配. 所以把所有点拆成x,y两个, 然后存在edge(u,v)就连ux->vy. 然后跑匈牙利即可.------------...
分类:
其他好文 时间:
2015-10-03 16:46:58
阅读次数:
235
find the mincost routeTime Limit: 1000/2000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3456Accepted Submission(s): ...
分类:
其他好文 时间:
2015-09-30 20:49:56
阅读次数:
163
Floyd传递闭包+DAG的最小路径覆盖先来一次Floyd传递闭包,然后再求最大匹配,n-最大匹配就是答案#include#include#include#include#includeusing namespace std;const int MAXN=550;int linker[MAXN];b...
分类:
其他好文 时间:
2015-09-25 21:37:14
阅读次数:
332
题意:给了n种硬币的名称,给了m种硬币间的转换关系。从任意兑换地点开始兑换,看是否能够通过兑换的方式增加金钱。思路:用SPFA不断对各个点进行松弛操作,寻找正权值的环。如果找到则输出Yes。这题测试的时候竟然发现dis数组写成int型...#include#include#include#inclu...
分类:
其他好文 时间:
2015-09-25 00:11:05
阅读次数:
195
题意:现在有 n 个点与 m 条边的无向无环图,但是图不一定完全连通,边有各自的边权,给出多组询问,查询两点之间的路径权值和,或者输出两点不连通。一开始有最短路的想法,但是由于询问有 1e6 组,做单源最短路肯定会爆炸,而 1e4 的边数又觉得 floyd 时间空间都会炸,又因为是无环图,所以就想到...
分类:
其他好文 时间:
2015-09-22 18:45:24
阅读次数:
203
有N头牛,有P个牧场,C条边。农夫将一块糖放在某个牧场中,要求所有牛到达这个牧场的总距离最短。赤裸裸的Floyd,然后枚举将糖放在每个点,统计牛要走的路。/*ID: modengd1PROG: butterLANG: C++*/#include #include #include using nam...
分类:
其他好文 时间:
2015-09-20 23:46:49
阅读次数:
335
题意:有n个传递消息者,每个都有nn个亲信,他们可以把消息传递给他们的亲信,所 花时间为b。问把最初的消息传递给谁可以在最短的时间内把消息传递给所有人。思路:Floyd算出任意两点之间的最短路,然后取每行最大值最小的矩阵作为首先传递出消息的人,将最大值作为把消息传递给所有人最短的时间。#includ...
分类:
其他好文 时间:
2015-09-19 21:06:50
阅读次数:
130
普通的Floyd了分分秒可以水过,结果在submit前删调试段落的时候把程序本体给删了吃了两个WA…… 1 #include 2 #include 3 #include 4 const int INF=3000000; 5 using namespace std; 6 const int MAXN=...
分类:
其他好文 时间:
2015-09-18 23:18:32
阅读次数:
200
题目链接:codeforces 295B题目大意:给出n个点的完全有权有向图,每次删去一个点,求每次操作前整张图各个点的最短路之和。题目分析:
首先删边对于我们来说是不好做的,所以我们想到了通过加点的方式逆向地做,那么加点怎么做呢?
其实就是一个我们很熟悉的算法:floyd,因为我们通常用的都是它的简化版本,所以可能很多人并不理解它的确切的思想。
在介绍这道题的具体解法之前,我先解释一下floyd,...
分类:
其他好文 时间:
2015-09-18 13:56:44
阅读次数:
169