bzoj 3158: 千钧一发【最小割】】的更多相关文章

题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3158 \( a[i] \) 是奇数则满足条件1,是偶数则显然满足条件2: 因为如果把两个奇数的 \( a[i] \) 写成 \( 2*n+1 \) 和 \( 2*m+1 \),那么: \( a[i]^{2} + a[j]^{2} = (2*n+1)^{2} + (2*m+1)^{2} = 4*(n^{2}+n+m^{2}+m) + 2 \) 这是个偶数,所以如果它是完全平方数,那么一定是一…
分析: 偶数对满足条件2,所有奇数对满足条件1. 如果你能一眼看出这个规律,这道题就完成了一半. 我们只需要将数分为两类,a值为奇数,就从S向这个点连容量为b值的边,a值为偶数,就从这个点向T连容量为b值的边. 暴力枚举,对于奇集合和偶集合中不能共存的两个数,连容量为无穷大的边. 求出最小割,代表这个割集要被我们舍弃. 然后直接用b值总和减去最小割就好. 代码: #include<bits/stdc++.h> #define ms(a,x) memset(a,x,sizeof(a)) #def…
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…
这个条件非常妙啊,奇数和奇数一定满足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…
3275: Number Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 748  Solved: 316[Submit][Status][Discuss] Description 有N个正整数,需要从中选出一些数,使这些数的和最大.若两个数a,b同时满足以下条件,则a,b不能同时被选1:存在正整数C,使a*a+b*b=c*c2:gcd(a,b)=1 Input 第一行一个正整数n,表示数的个数. 第二行n个正整数a1,a2,?an. Output…
3158: 千钧一发 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1201  Solved: 446[Submit][Status][Discuss] Description   Input 第一行一个正整数N. 第二行共包括N个正整数,第 个正整数表示Ai. 第三行共包括N个正整数,第 个正整数表示Bi. Output 共一行,包括一个正整数,表示在合法的选择条件下,可以获得的能量值总和的最大值. Sample Input 4 3 4 5 1…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3158 发现偶数之间一定满足第二个条件:奇数之间一定满足第一个条件 ( \( (2m+1)^{2}+(2n+1)^{2}=4m^{2}+4m+1+4n^{2}+4n+1 \),这是个偶数,所以 T2 的 T 一定是偶数:偶数的平方一定是4的倍数,不能有那个 +2  ). 所以如果把不合法的连起来,就是一个二分图.可以用最小割做,不合法之间的连边是 INF 这样. 注意判断第一个条件的时候不用…
因为是异或运算,所以考虑对每一位操作.对于所有已知mark的点,mark的当前位为1则连接(s,i,inf),否则连(i,t,inf),然后其他的边按照原图连(u,v,1),(v,u,1),跑最大流求最小割.然后从s沿着有剩余流量的边dfs,把dfs到的点都与(|)上1,因为是与,所以即使操作到了已知mark的点也没关系. 考虑这样做的意义.最小割就是把总点集分割为两个点集S,T,使得所有\(u\in S,v\in T,val(u,v) \)的值最小.也就是说,在这道题中的意义就是在当前位使最少…
题面:BZOJ传送门 和方格取数问题很像啊 但这道题不能像网格那样黑白染色构造二分图,所以考虑拆点建出二分图 我们容易找出数之间的互斥关系,在不能同时选的两个点之间连一条流量为$inf$的边 由于我们是拆点建的图,所以对于两个点$x,y$,$x1$向$y2$连边,$y1$向$x2$连边,边权均为$inf$ 然后就是最大权闭合图的裸题了,源点$S$向所有$1$点连边,所有$2$点向汇点$T$连边,边权为$b_{i}$ 跑最大流.最终答案是$\sum b_{i}-$最大流$/2$,$/2$是因为拆点…
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2229 [题意] 回答若干个关于割不超过x的点对数目的询问. [思路] [最小割最多有n-1个,这n-1个最小割构成一个最小割树] 分治法寻找n-1个最小割.对于当前点集X,任选两点为ST做最小割,然后找出与S相连的所有点和与T相连的所有点构成S集与T集,更新S集与T集的最小割.然后递归处理两个集合. [代码] #include<set> #include<cmath>…