题目大意:给定一个无向图,一些点有权值,其它点的权值可以自己指定,要求指定这些点的权值,使每条边两边的点权异或值之和最小
在此基础上要求点权和最小
首先不考虑点权和最小这个条件 那么我们将每一位分开计算 我们会发现这是一个最小割的模型
令S集为0,T集为1,如果这个点的点权已经指定,则向相应集合连流量为INF的边
每条边的两端点之间连一条流量为1的边
跑最小割就是答案
现在我们将点权考...
分类:
其他好文 时间:
2015-01-09 14:19:47
阅读次数:
165
题目大意:给定一张图,每条边有一个长度和一个花费,要求删掉一些边使1到n的最短路变长,求最小花销
首先求出最短路(用什么求随便,反正数据范围小),然后将所有在最短路上的边连到新图中,求最小割就是答案
图没有重边- - 数组开小WA了半篇- -
#include
#include
#include
#include
#define M 510
#define S 1
#define T...
分类:
其他好文 时间:
2015-01-09 14:19:33
阅读次数:
138
题解:分治求最小割。
【l……r】里任意找两个作为s、t(不妨把s设为l位置上的点,t设为r位置上的点)求最小割,两层for循环枚举修改map[i][j]即两点间最小割值。
然后一部分属于S集,一部分属于T集,分治【l,L】,【R,r】,每次求完最小割值都全局进行修改。
最后每次询问暴力做就好了,无需任何优化即可AC。
代码:
#include
#include...
分类:
编程语言 时间:
2015-01-08 18:12:25
阅读次数:
182
网络流的背景我就不多说了,就是在一个有向图中找出最大的流量,有意思的是,该问题的对偶问题为最小割,找到一种切分,使得图的两边的流通量最小,而且通常对偶问题是原问题的一个下界,但最小割正好等于最大流,即切割的边就是最大流中各个path饱和边的一个组合。说得可能比较含糊,这里想要了解清楚还是查阅相关资料吧。
最大流最原始最经典的解法就是FF算法,算法复杂度为O(mC),C为边的容量的总和,m为边数。...
分类:
编程语言 时间:
2015-01-02 16:02:48
阅读次数:
412
题解:先做60分。。。考虑最小割,连边容量为需要付出的代价。不妨设在s割为黑色,t割为白色。(s,i,b[i])(i,t,w[i])关于奇怪,因为不是按份数来的。所以我们这样建图:(i,i+n,p[i])(i+n,j,inf) l[i] 2 #include 3 #include 4 #includ...
分类:
其他好文 时间:
2015-01-01 10:04:01
阅读次数:
379
首先发现每一位二进制可以分开来做。然后就变成0、1两种数了,考虑最小割。设S表示选0,T表示选1,则对于确定的点向数字对应的S/T连边,边权inf;然后原来图中有边的,互相连边,边权为1。直接最小割即可,最后还要dfs一下来求出每个未确定的数选的是0还是1。 1 /****************....
分类:
其他好文 时间:
2014-12-31 22:43:56
阅读次数:
279
题目大意:给定一个矩阵,多次求某个子矩阵中的第k小
分块解法见 http://blog.csdn.net/popoqqq/article/details/41356899
《论除最小割外题目解法从来与题目名称无关系列》
整体二分 Solve(x,y,S)表示处理答案在[x,y]区间内的询问集合S
预先将所有数按照大小排序 每次将[1,mid]之间的数插入树状数组
然后对于分治内部的每一个...
分类:
编程语言 时间:
2014-12-30 15:24:28
阅读次数:
275
题解:考虑最小割。不妨设s割为不选,t割为选。那么连边(s,i,a[i])(i,t,b[i])b[i]表示 i 对其他点做出的贡献之和。意义显然,如果 i 属于 s割,需要付出b[i]的代价,如果 i 属于 t 割,需要付出 a[i] 的代价。然后对于E[i][j],连边(i,j,2*E[i][j]...
分类:
其他好文 时间:
2014-12-28 16:53:46
阅读次数:
246
题解:其实就是一个简单的最小割判断是否唯一解。。。可是我写了一上午还没过。。。T_T把1-n的最短路上的边提出来做最小割。然后从s,t分别bfs判断必须在某个割的点。如果有的点没有被bfs到,那么最小割方案不为1。因为s到它的边满流,它到t的边也满流,哪条边都可以作为割边。但还是有很多坑点啊!!!一...
分类:
其他好文 时间:
2014-12-28 12:55:37
阅读次数:
371