
构造
ACM败犬
这个作者很懒,什么都没留下…
展开
-
Codeforce 1270 G. Subset with Zero Sum(数学 + 建图构造 + 思维)
题目大意:有一个数组a,满足i−n≤ai≤i−1i - n \leq a_i \leq i - 1i−n≤ai≤i−1,求该序列的一个子集使得这个子集和为0。转变一下式子得到:1≤i−ai≤n1 \leq i - a_i \leq n1≤i−ai≤n,对每个 aia_iai,建一条从 iii 到 i−aii - a_ii−ai 的边,由于每个点都有出度,整个图必定有环。对于环可以得到...原创 2020-01-02 13:26:50 · 373 阅读 · 0 评论 -
Codeforce 1270 E. Divide Points(奇偶分类构造)
题目大意:将二维坐标平面上的点分成两组,使得同一组的点之间的欧几里得距离不等于不同组之间的欧几里得距离。首先按在坐标(x,y)的奇偶性将所有点划分到4个桶:00,01,10,11;1代表奇数,0代表偶数。在一个桶内的距离一定是偶数,在不同桶但异或起来等于11的距离也是偶数(如00和11,10和01),其它的都是奇数。若只有一个桶有点,把所有的坐标除以2,然后重复划分过程。把一个桶内的所...原创 2019-12-31 13:52:15 · 419 阅读 · 0 评论 -
Codeforce 1270 D. Strange Device(交互 + 构造)
题目大意:有一个两两值互不相同的数组,但是你不知道这个数组的值,有一个机器,你询问 k 个下标,他会返回这数组中这 k 个下标对应的数 按升序排序后的第 m 个的下标和值。你现在不知道 m,你可以通过问 不多于 n 个问题,每个问题的形式为 :输出 ? x_1 x_2 x_3 … x_k,机器会返回这些下标在数组中对应的数,排序后的第m个的下标和值。求 m。第一次做交互题,构造的方法很简单,...原创 2019-12-30 17:11:54 · 378 阅读 · 0 评论 -
1157 Round 555 DIV3 :F. Maximum Balanced Circle (构造算法 + 尺取法(双指针))
题目大意:给出一个序列A,要你从这个序列中选出一些元素构造出一个最长的新序列,这个新序列是一个环,且相邻的两个元素差值不超过1。解法:首先要知道差值为0也是可以的,但是贪心的从个数最多的元素开始构造是错的,需要枚举来构造答案最大的解。普通枚举区间复杂度达到O(n ^ 2),因此要换一种枚举方式:先将原序列排好序,这样能选的元素一定是在连续的区间,首先左端点,我们让右端点遍历序列,如果左端点到右端...原创 2019-04-27 21:00:27 · 188 阅读 · 0 评论 -
Codeforce 1061 :D. TV Shows(multiset + 贪心 + 构造)
题目大意:有 n 个电视节目,每个节目有一个播放时间[ai,bi],你可以租用电视机来播放节目,租用一台电视机要先付 xxx(类似定金什么的),如果你在[a,b]时间段租用,你需要付租用的费用:y∗(b−a)y * (b - a)y∗(b−a)。当电视机播放一个节目时,电视机不能中途跳转到播放其它节目,一个节目被电视机播放时,也不能播到一半然后转到其它电视机去播放。问如何使租用电视机使得你可以播放...原创 2019-08-17 21:28:16 · 253 阅读 · 0 评论 -
2019 上海网络赛 F. Rhyme scheme(dp + 线性构造)
题目大意:用字符表示集合划分,例如 AABBA 表示 1,2,5划分一个集合,3,4划分一个集合,输入 n,k,用字母表示 n 个人的集合划分,输出字典序第 k 小的划分字符串。集合划分的数目是一个贝尔数,观察到如果前 i 个人划分出了 k 个集合,第 i + 1 个人有 k + 1种选择,要么归属 k 个集合中的一个,要么划分到一个新的集合。一个人的可选择方案数量只和前面的集合数量有关,并...原创 2019-09-17 00:35:58 · 507 阅读 · 2 评论