摘要:
[codevs 1904] 最小路径覆盖问题题解:因为题目中边的长度“可以为0”, 所以不妨先假设一种特殊情况,就是所有边的长度均为0,那么需要的路径就是n条(n为点的个数);然后我们在这些点之间连一些边,按照题目要求每个点至多有一条边,可以发现每连一条边覆盖的路径就少了一条。那么什么时候覆盖的路径... 阅读全文
摘要:
[codevs 1232] 飞行员配对方案问题题解:做法一:二分图最大匹配。做法二:用网络流求解二分图最大匹配...但是都卡在输出路径上面。。。纠结要不要直接交数据,反正我有。。。代码(未AC):#include#includeusing namespace std;const int maxn =... 阅读全文
摘要:
1906 最长递增子序列问题题解:第一问是普通的DP,同时为后面做铺垫。后面的在《线性规划与网络流24题》里说的要比我好,引用来:第一问动态规划已经求出F[i],表示以第i位为开头的最长上升序列的长度,求出最长上升序列长度K。1、把序列每位i拆成两个点和,从到连接一条容量为1的有向边。2、建立附加源... 阅读全文
摘要:
[codevs 2236] 终极情报网题解:题目很长,要有耐心,其实思路很清晰。网络流模型很容易想,难点倒出在实数处理和输出上。首先因为求可靠程度也就是求概率要相乘,所以要想用费用流求解就先用log()函数转化成加法——学过高数(呵呵高中数学)的应该都会对数运算吧。最后输出再用exp()函数转化回来... 阅读全文
摘要:
[codevs 1907] 方格取数3题解:二分图染色、最大点权独立集。因为要用到最大独立集的一些思路,故先写了一篇最大独立集的题解:http://blog.csdn.net/qq_21110267/article/details/43371311最大点权独立集可以类比到最大独立集,同样求解它的对称... 阅读全文
摘要:
[codevs 1917] 深海机器人问题题解:看题建图。“k个深海机器人从(x,y)位置坐标出发”、“r个深海机器人可选择(x,y)位置坐标作为目的地”,嗯~暗示已经很清楚了。一开始没理解题目中关于地图大小的叙述,还要记得建立多重边(有点方格取数2的味道)。代码:总时间耗费: 5ms总内存耗费: ... 阅读全文
摘要:
[codevs 1914] 运输问题题解:直接看要求建图,求费用流取相反数输出,再改边费用求费用流输出。代码:总时间耗费: 58ms总内存耗费: 364B#include#include#include#include#includeusing namespace std;const int max... 阅读全文
摘要:
[codevs 1915] 分配问题题解:二分图最大完美匹配及最小完美匹配。可以用费用流来做。比较简单的方法就是把边权设为负值求最小费用最大流,费用的相反数就是最大完美匹配。最近会更新一个匈牙利算法的代码。代码:总时间耗费: 73ms总内存耗费: 488B#include#include#inclu... 阅读全文
摘要:
[codevs 1922] 骑士共存问题题解:二分图最大独立集问题。二分图的最大独立集:选出一些点,让两两之间没有边相连。二分图最大独立集问题一般转化为它的对偶问题——最小覆盖集,因为最大独立集要求每条边所连接的两个点最多有一个被选中,而最小覆盖集要求每条边所连接的两个点最少有一个被选中。那么点的个... 阅读全文
摘要:
[codevs 1227] 方格取数 2题解:注:这是CODEVS的方格取数2,走k次的版本。因为每个格子可以走无数次,但走过一次之后数字就变成了0,也就是只有一次可以加上格子里的数字。所以要拆点(X->Xi,Xj),在Xi和Xj之间连一条容量为1,费用为数字的相反数的边(取走该格数字),再连一条容... 阅读全文
摘要:
[codevs 1913] 数字梯形问题题解:本题就是加强版的[codevs1033] 蚯蚓的游戏问题。分别针对三个规则建图、运行最小费用最大流。规则1:从梯形的顶至底的m条路径互不相交。分析:因为要互不相交,所以每个点只能走一次,因此要拆点(X->Xi,Xj),容量为1费用为数字相反数,从源点向顶... 阅读全文