2400: Spoj 839 Optimal Marks Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 567  Solved: 202[Submit][Status][Discuss] Description 定义无向图中的一条边的值为:这条边连接的两个点的值的异或值. 定义一个无向图的值为:这个无向图所有边的值的和. 给你一个有n个结点m条边的无向图.其中的一些点的值是给定的,而其余的点的值由你决定(但要求均为非负数),使得这个无向图的值最小…
题目链接:BZOJ - 2127 题目分析 首先,每个人要么学文科,要么学理科,所以可以想到是一个最小割模型. 我们就确定一个人如果和 S 相连就是学文,如果和 T 相连就是学理. 那么我们再来确定建图.首先使用最小割,就是先加上所有可能获得的权值,再减去最小割(即不能获得的权值). 如果一个人学理,就要割掉与 S 相连的边,那么就是要割掉学文的收益.于是,对于每个点,从 S 向它连边,权值为它学文的收益. 同理,对于每个点,从它向 T 连边,权值为它学理的收益. 对于两个相邻的人,他们有同时学…
链接 BZOJ 2561 题解 用Kruskal算法的思路来考虑,边(u, v, L)可能出现在最小生成树上,就是说对于所有边权小于L的边,u和v不能连通,即求最小割: 对于最大生成树的情况也一样.容易看出两个子问题是各自独立的,把两个最小割相加即可. #include <cstdio> #include <cmath> #include <cstring> #include <algorithm> #include <queue> using…
[BZOJ2400]Spoj 839 Optimal Marks Description 定义无向图中的一条边的值为:这条边连接的两个点的值的异或值. 定义一个无向图的值为:这个无向图所有边的值的和. 给你一个有n个结点m条边的无向图.其中的一些点的值是给定的,而其余的点的值由你决定(但要求均为非负数),使得这个无向图的值最小.在无向图的值最小的前提下,使得无向图中所有点的值的和最小. Input 第一行,两个数n,m,表示图的点数和边数. 接下来n行,每行一个数,按编号给出每个点的值(若为负数…
1391: [Ceoi2008]order Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1509  Solved: 460[Submit][Status][Discuss] Description 有N个工作,M种机器,每种机器你可以租或者买过来. 每个工作包括若干道工序,每道工序需要某种机器来完成,你可以通过购买或租用机器来完成. 现在给出这些参数,求最大利润 Input 第一行给出 N,M(1<=N<=1200,1<=M<=12…
[题意] 给定n个数,要求选出一些数满足 1.存在c,a*a+b*b=c*c 2.gcd(a,b)=1  使得和最大. [思路] 二分图的最大权独立集(可以这么叫么QAQ 先拆点,对于不满足条件的两个点,连边(u,v’,inf),(v,u’,inf),另外连边(S,u,a[u]),(u,T,a[u]). 求出的最小割为最小亏损的2倍. [代码] #include<set> #include<cmath> #include<queue> #include<vecto…
3144: [Hnoi2013]切糕 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 681  Solved: 375[Submit][Status] Description Input 第一行是三个正整数P,Q,R,表示切糕的长P. 宽Q.高R.第二行有一个非负整数D,表示光滑性要求.接下来是R个P行Q列的矩阵,第z个 矩阵的第x行第y列是v(x,y,z) (1≤x≤P, 1≤y≤Q, 1≤z≤R). 100%的数据满足P,Q,R≤40,0≤D≤…
3158: 千钧一发 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 767  Solved: 290[Submit][Status][Discuss] Description   Input 第一行一个正整数N. 第二行共包括N个正整数,第 个正整数表示Ai. 第三行共包括N个正整数,第 个正整数表示Bi. Output 共一行,包括一个正整数,表示在合法的选择条件下,可以获得的能量值总和的最大值. Sample Input 4 3 4 5 12…
3996: [TJOI2015]线性代数 题意:给出一个NN的矩阵B和一个1N的矩阵C.求出一个1*N的01矩阵A.使得 \(D=(A * B-C)* A^T\)最大.其中A^T为A的转置.输出D.每个数非负. 分析一下这个乘法的性质或者化简一下容易发现,\(C_i\)代价生效需要\(A_i=1\),\(B_{ij}\)贡献生效需要\(A_i =A_j=1\) 最小割 我成功的把dinic里的括号打错了...gg #include <iostream> #include <cstdio&…
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=1797 题解: 详细的讲解去看http://hzwer.com/3217.html首先跑一个最小割.那么剩下的就是一个结论的事了:对残余网络跑一个Tarjan缩点,1).对于一条满载边u->v,u->v能够出现在某个最小割集中,当且仅当u,v不属于同一个SCC:2).对于一条满载边u->v,u->v必定出现在最小割集中,当且仅当u,v分别在S,T的SCC中.(u,v必然不在一个…
BZOJ 洛谷 \(LIS\)..经典模型? 令\(f_i\)表示以\(i\)结尾的\(LIS\)长度. 如果\(f_i=1\),连边\((S,i,INF)\):如果\(f_i=\max\limits_{j=1}^n\{f_j\}\),连边\((i,T,INF)\):如果\(f_i=f_j+1,\ j<i\),连边\((j,i,INF)\). 这样使\(LIS\)长度至少减少\(1\),就是删掉图中的一些点,使得\(S,T\)不连通. 拆点,把\(i\)拆成\(X_i,Y_i\),连边\((X_…
新的技术正冲击着手机通讯市场,对于各大运营商来说,这既是机遇,更是挑战.THU集团旗下的CS&T通讯公司在新一代通讯技术血战的前夜,需要做太多的准备工作,仅就站址选择一项,就需要完成前期市场研究.站址勘测.最优化等项目.在前期市场调查和站址勘测之后,公司得到了一共N个可以作为通讯信号中转站的地址,而由于这些地址的地理位置差异,在不同的地方建造通讯中转站需要投入的成本也是不一样的,所幸在前期调查之后这些都是已知数据:建立第i个通讯中转站需要的成本为Pi(1≤i≤N).另外公司调查得出了所有期望中的…
最小割的建图模式一般是,先算出总收益,然后再通过网络模型进行割边减去部分权值. 然后我们需要思考什么才能带来收益,什么才能有权值冲突. s连向选的点,t连向不选的点,那么收益的减少量应该就是将s集和t集分开的割边集. 下面说这道题的建图: 点: 每个人一个点,额外设源汇点. 边: 源向人连这个人能造成的全部收益(当作雇佣所有人,然后此人造成的收益) 人与人之间连两人熟悉度*2,呃,题意问题. 人向汇连雇佣需要花的钱. # include <cstdio> # include <cstri…
4439: [Swerc2015]Landscaping Time Limit: 2 Sec  Memory Limit: 512 MB Description FJ有一块N*M的矩形田地,有两种地形高地(用‘#’表示)和低地(用‘.’表示) FJ需要对每一行田地从左到右完整开收割机走到头,再对每一列从上到下完整走到头,如下图所示   对于一个4*4的田地,FJ需要走8次. 收割机是要油的,每次从高地到低地或从低地到高地需要支付A的费用. 但是FJ有黑科技,可以高地与低地的互变,都只需要一个支付…
这个条件非常妙啊,奇数和奇数一定满足1,因为\( (2a+1)^2+(2b+1)^2=4a^2+4a+4b^2+4b+2=2(2(a^2+a+b^2+b)+1) \)里面这个一定不是平方数因为除二后是个奇数不能再分一个2出来:偶数和偶数一定满足2,因为gcd>=2 考虑最小割,先加上所有收益然后求割之后满足条件的最小代价 所以对于a[i]&1,连接(s,i,b[i]),否则连接(i,t,b[i]),对于不能同时选的i,j来说,连(i,j),表示要么割掉i的收益要么割掉j的收益 #includ…
先跑一遍最大流,然后对残量网络(即所有没有满流的边)进行tarjan缩点. 能成为最小割的边一定满流:因为最小割不可能割一半的边: 连接s.t所在联通块的满流边一定在最小割里:如果不割掉这条边的话,就能再次从s到t增广 连接两个不同联通块的满流边可能在最小割里:新图(即缩点后只有满流边的图)的任意一条s.t割都是最小割,所以可以任取割的方案 #include<iostream> #include<cstdio> #include<cstring> #include<…
参考:https://www.cnblogs.com/chenyushuo/p/5144957.html 不得不说这个建图方法真是非常妙啊 假设S点选理,T点选文,a[i][j]为(i,j)选文收益,b[i][j]为(i,j)选理收益,c[i][j]为同时选文收益,d[i][j]为同时选文收益. 那么对于每个点x=(i+1)*m+j,我们连接 \[ c[s,x]=b[i][j] \] \[ c[x,t]=a[i][j] \] 对于有利益相关的x,y两点,连接 \[ c[s,x]=d[i][j]/…
看错题了以为多组询问吓得不行-- 其实还挺好想的,就是数据范围一点都不网络流.把U作为s,V作为t,以最小生成树为例,(U,V,L)要在最小生成树上,就要求所有边权比L小的边不能连通(U,V)所在的联通块.这样一来模型就很显然了,就是对所有边权<L的边建边(u,v,1)(v,u,1),然后最小割即可.建双向边是因为反正只会割掉一条-- #include<iostream> #include<cstdio> #include<cstring> #include<…
题面: 把每两个点当成源汇,求N*(N-1)个最小割中不同的有多少个 N<=850 分析: 有这样一个结论:一张无向图不同的最小割最多有n-1个. 那么我们一定可以建出一棵树,使得这棵树中每两个点之间的最小割等于原图的两个点间的最小割. 我们倒也没必要吧这棵最小割树建出来.我们只需要做做样子,跑一下建树的过程就好,怎么办呢: 我们在原无向图中任选两个点S,T,求出S-T最小割,那么可以在S-T中间加一条权值等于最小割值得无向边 然后,分别对S属于的点集合和T属于的点集合递归做上面的过程,直到当前…
题意 有nnn个数,其中同时满足下面两个条件的数对不能同时选,求选出一些数让和最大. 若两个数aaa,bbb同时满足以下条件,则aaa,bbb不能同时被选 存在正整数ccc,使a∗a+b∗b=c∗ca*a+b*b=c*ca∗a+b∗b=c∗c gcd(a,b)=1gcd(a,b)=1gcd(a,b)=1 分析 看到这熟悉二元关系,就能够用最小割做了.但是乍一看不是二分图的模型,就不能直接连了.所以有一种做法就是拆点. 但是我们看这两个式子可以推出来这的确是一个二分图,而且是奇偶二分图,证明如下:…
1797: [Ahoi2009]Mincut 最小割 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2076  Solved: 885[Submit][Status][Discuss] Description A,B两个国家正在交战,其中A国的物资运输网中有N个中转站,M条单向道路.设其中第i (1≤i≤M)条道路连接了vi,ui两个中转站,那么中转站vi可以通过该道路到达ui中转站,如果切断这条道路,需要代价ci.现在B国想找出一个路径切断方案…
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=3144 题意: 思路:我们假设没有那个D的限制.这样就简 单了.贪心的话,我们只要在每一个纵轴上选择最小值即可.若看做最小割,我们可以从每一层的(x,y,z)向上一层的(x,y,z+1)连边流量为 v(x,y,z),这样就是增加一层R+1.然后原点向第一层连边,第R+1层向汇点连边.这样就是一个最小割,其实跟上面的贪心是一样的.现在有了D的 限制,我们看看怎么将这个限制加入到现在建好的网…
先跑网络流, 然后在残余网络tarjan缩点. 考虑一条边(u,v): 当且仅当scc[u] != scc[v], (u,v)可能出现在最小割中...然而我并不会证明 当且仅当scc[u] = scc[S] && scc[v] == scc[T], (u, v) 必定出现在最小割中. 这个很好脑补, 假如这条边不是满流, 那么S-T就存在增广路了.. ----------------------------------------------------------------------…
标题效果:鉴于加权值矩阵,带走一个地方的权利值之后,与其相邻的格儿童权利值变0.问多少可以取出到右值. 思维:Amber论文题目.不难建设,图着色.颜色从S连边,还有一种颜色向T连边.再把相邻的格子连边.之后跑最小割,用总权值减去最大流就是答案. CODE: #include <queue> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm>…
题目链接 想一下能猜出,最优解中海拔只有0和1,且海拔相同的点都在且只在1个连通块中. 这就是个平面图最小割.也可以转必须转对偶图最短路,不然只能T到90分了..边的方向看着定就行. 不能忽略回去的边,因为最小割的形状可能很奇怪. //16232kb 456ms //平面图点数就是(n-1)^2了.但是边数不是4(n-1)^2,是4n(n-1)!.. #include <queue> #include <cstdio> #include <cctype> #includ…
题目链接 一条边不变其它边减少可以看做一条边增加其它边不变. 假设要加的边lab为(A->B,v),那么肯定是要使除这条边外,A->B的每条路径上的最小权值都\(>v\),这样在连通A,B时(即Kruskal中Union())才一定会选择这条边. 要求路径上最小边的权值\(>v\),即要求在路径上有任意一边权值\(\leq v\)时不连通.于是求最小割(使它不连通),割掉一条边的代价即\(v[lab]-v[i]+1\). 无向图建双向边. status里的怎么都那么快?复制了一份2…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2007 一个点的高度一定不是0就是1.答案一定形如一个左上角的连通块全是0的点.一个右下角的连通块全是1的点. 注意从东到西还有从南到北的边也有用!因为不一定是一个阶梯形的,还可以拐来拐去,只是一定是两个连通块罢了. 所以最小割一下那个分界线就行了.但会TLE. #include<cstdio> #include<cstring> #include<algorithm&g…
首先注意到,把一个点的海拔定为>1的数是毫无意义的.实际上,可以转化为把这些点的海拔要么定为0,要么定为1. 其次,如果一个点周围的点的海拔没有和它相同的,那么这个点的海拔也是可以优化的,即把这个点变为周围海拔一样的显然能使结果变优. 于是问题就变成了,这个图的海拔为0的联通块和起点连在一起,海拔为1的联通块和终点连在一起. 此即为经典的最小割. 由于此图为平面图,我们可以使用平面图最小割转对偶图最短路优化算法. 因为这是有向图,因此构建对偶图的时候注意边的方向即可. # include <c…
4663: Hack Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 69  Solved: 26 Description 由于 FZYZ 教学区禁止使用手机,所以如何在一个课间通知到人就成了一个很大的问题.所幸,在不知道被信息传 递不及时坑了多少次之后,小叶子(@97littleleaf11)完美地解决了这个问题.小叶子组建了一张关系网,每一个 人是这张关系网上的一个节点(节点编号为[0,n-1]),两个人之间的通讯关系就是这张网上的一条有向边(…
3894: 文理分科 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 674  Solved: 392[Submit][Status][Discuss] Description  文理分科是一件很纠结的事情!(虽然看到这个题目的人肯定都没有纠 结过)  小P所在的班级要进行文理分科.他的班级可以用一个n*m的矩阵进行 描述,每个格子代表一个同学的座位.每位同学必须从文科和理科中选择 一科.同学们在选择科目的时候会获得一个满意值.满意值按如下的方式…