构造专题

CF1198C Matching vs Independent Set

给一个无向图,3×n 个点, m 条边,请找大小为 n 的点独立集或边独立集。
n,m5×105

解题思路:

不难发现一个大小为 n 的独立集和一个大小为 n 的边独立集,两个点数加起来最多为 3×n 的。
然后当一个边独立集中不能再从他点集的补集中加边时,就说明他点集的补集是一个点独立集。
所以考虑任选一个极大边独立集,那么分讨一下是选边独立集还是点独立集就行。

CF618F Double Knapsack

给了你两个数组 A 和 B,请问能不能从 A,B 中各选一个集合使得和相同。
n106,1Ai,Bin

解题思路:

考虑从中选出的集合不同的和最多有 n×(n+1)2 种不同的数字。
然后一个数组的子段的个数也为 n×(n+1)2 个。
我们猜测他子段也可以做。
sumai=sumj=1iaj,sumbi=j=1ibj
强定 sumansumbn
pi=minsumai<sumbjj,则有 1sumbpisumain
由于对于任意的 0in,都有 pi,所以一定存在两个整数 i,j 使得 sumbpisumai=sumbpjsumaj
于是就能找到一个解。
用双指针能做到 O(n)

感觉构造还是需要先找到性质,再转化问题才能做啊

posted @   positive_deviation  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示