摘要:
赤果果的费用流,我闲的练单纯形的模板,不过发现跑的还挺快的...哈哈。 N^2预处理出一些需要用到的信息,然后变量是一个y^2-x^2=z^2的等式,每个约束条件是一个数在每个等式中出现的次数和小于等于1,这样就很直观了。为了方便,可以把预处理是出现在等式中得数字离散出来,构造出矩阵就行了。 单纯形最麻烦的就是构造矩阵了,算法的操作实际上就是个类似高斯消元的东西,由于是0-1单纯形,这种写法就挺舒服的了。 对于方案数,直接求出各个等式变量的值就行了,具体方法是看哪个等式的MAT[i][0]=0. Match 1 #include<iostream> 2 #include<cs 阅读全文
摘要:
这个题有原型,上海2004那个mst,加边减边的代价都是1,做法一样,但是那个题单纯形被卡空间了......囧。 分析一下:对于每条非指定在mst里的边(以下称非树边),它一定存在且仅存在一个出它之外全由树边组成的环里,那么这条非树边一定比环里其它边长,那么我们要么增加这条非树边,要么减少其它树边,方能满足条件。于是就可以对于每条非树边,找到那些和它相关的树边,就可以列出线性规划式了。利用对偶转化成松弛形式,就可以单纯形了。这里额外提一下,对于这种约束的系数为0,1,-1,所求值为整数的线性规划,可以用简化版单纯形法,详见代码: orz the mst 1 #include<iost.. 阅读全文