构造题
仰望星空的蚂蚁
梁东饪猛虎,汴水烹蛟龙
展开
-
【学习笔记】CF1835C Twin Clusters
div1的C相当于div2的E,但是为啥放到div1就做不出来?原创 2024-01-08 20:34:53 · 472 阅读 · 0 评论 -
构造题专练
这是一道很水的构造题首先我们把一个置换拆分成若干个循环置换的乘积,例如:讲一下怎么通过循环置换还原成原来那个:这样的话,上面那一行表示下标,下面那一行表示对应位置上的数。这道题经过简单分析我们可以发现 m=1 是不可能的,因此很自然而然地想到 m=2 就是答案。因为每个环之间是独立的,所以我们分别分析。先来看这个置换:一个很自然的想法是按(3,2,1)即循环置换的顺序来操作,会很舒服地发现基本所有数都能归位,但最后一步却无论如何也执行不了。经过简单分析我们发现原因在于 :于是我的解决方案是:我们在做上述原创 2022-06-03 11:57:45 · 555 阅读 · 0 评论 -
[ARC103D] Distance Sums
这题真的好妙啊其实这道题与正解有关的提示信息几乎没有。我们会发现若干条小的性质,但实际上只有一个关键的信息决定了 这棵树的唯一形态 。(其实我们可以猜这棵树是唯一的,因为 DiD_iDi 互不相同,然后,我们尝试还原它)众所周知,如果每个节点的父亲是唯一确定的话,最终树的形态也是唯一确定的。我们的 task 就是 重复把一颗完整的子树接到某一结点下面 。我们来看一看这个过程此时不难计算出 D[u]=D[s]+2×s−nD[u]=D[s]+2\times s-nD[u]=D[s]+2×s−n ,原创 2022-05-20 22:00:03 · 173 阅读 · 0 评论 -
CF1415D XOR-gun
给你一个不降的序列,每次可以把两个相邻的数替换成它们的异或结果,问你破坏序列不降最少的操作次数。这题 n≤105n\leq 10^5n≤105 包括 最少 的限制都是来吓唬你的。那么一个区间经过若干次操作后就变成了区间的异或和。所以我们想到 o(n^3) 的暴力枚举:但是这个复杂度不合理啊,我们可以想到如果三个相邻的数的最高位相同,那么对后两个数操作一次就可以把最高位抵消掉,这样只操作一次必然最优。简单计算可得序列长度不能超过 30∗3=9030*3=9030∗3=90 也就是说 n≥100n\原创 2022-05-20 09:21:55 · 116 阅读 · 0 评论 -
CF356D Bags and Coins & CF1239E Turtle
两道用bitset优化 01 背包的问题。原创 2022-05-19 20:25:19 · 166 阅读 · 0 评论 -
题解 CF468C Hack it
这题是比较难的一道题目。当然还是有套路的。先考虑 [1,10^x] 的答案。具体是多少我们并不关心。然后考虑 [2,10^x+1] 的答案。会发现比原来多 1 。那么最多 mod 次就能刚好整除 ,取 x=20 是绰绰有余的。注意用 __int128 。...原创 2022-05-19 20:10:39 · 167 阅读 · 0 评论 -
CF453C Little Pony and Summer Sun Celebration
。。。。对于图论的问题我们通常把它转移到树上,并且通常这两个问题是等价的。如果两个 a[i]=1 的点不在一个联通块上就输出 -1 。定义 dfs(u) 表示处理完以 u 为根的子树,使得除了根以外所有的点经过次数都满足奇偶限制。我们遍历完 v 再回溯到 u ,此时如果 v 不满足限制则调整(这样 v 节点恰好多经过一次):最后如果根节点不满足条件就把序列最后一个数删掉即可。算一下总步数: n + (n-1) + 2 * (n-1) = 4n - 3 < 4n总结:本题还是考察问题转化原创 2022-05-13 21:11:10 · 115 阅读 · 0 评论 -
CF97B Superset
平面分治哈哈哈哈这个trick怎么在哪里见过。原创 2022-05-12 16:39:34 · 80 阅读 · 0 评论 -
CF936C Lock Puzzle
由这道题生发的感慨。观察数据 n≤2000n\leq 2000n≤2000 , q≤6000q \leq 6000q≤6000 。这道题至少有 6 种构造方式:把 1~i 放到末尾,运用 3 步把 i + 1 还原把 i ~ 1 放到末尾,运用 3 步把 i+1 放到前面还是 3 步还原一个4. 再来一个 3 步的5. 抽取 s[l,r] = t[i,j] ,奇数次操作在左边插一个,偶数次操作在右边插一个(最开始可以理解为空串或中位数)6. 假设已经还原了 s[1,i] ,s[原创 2022-05-12 10:54:44 · 82 阅读 · 0 评论 -
构造题总结
玄学 !!!原创 2022-05-06 21:26:23 · 245 阅读 · 0 评论 -
[ICPC2014 WF] Baggage
拿到这种题,首先不要慌张 。这道题有 很明显 的规律性 : BABABABA …那么这道题 再难也不难 。手玩。手玩的时候要有清晰的目标,因为手玩的目的是让我们直观地感受规律,发现规律。毫无目的的手玩只是在浪费时间。尤其是这种规律性强的题目,手玩的结果往往具有普遍性,可以推而广之。当题目比较复杂时,手玩很有可能出错 。 这个时候要结合暴力程序进行验证。当然这都不是最核心的。本题最核心的是 递归构造 。而且这个构造 比较复杂,不那么明显 ,特别是这种带有 最小步数 限制的构造题目,往往考验创造原创 2022-05-04 21:39:09 · 248 阅读 · 0 评论 -
[CF858F] Wizard‘s Tour
图论构造题通常可以规约到一棵树上(当然这个思维过程如果没有把握要领的话可能会想一下午,总的来说还是转化问题的能力不强,真正的高手是可以在知识之间建立联系的)。对于树的情况,DFS 一遍可以方便地实现两两配对。这也是很经典的树 dp 模型。现在放到一般图上,你反而不会了 ?对了嘛。把返祖边看成 连了一个虚拟节点 ,就可以转换成一个树了。如果告诉你可以这样转化,你肯定能分析出来。如果不告诉你,你就没发现这两件事物的关系?或者说,因为它们之间不存在等价关系,所以不容易被你发现?看来建立知识点之间原创 2022-05-04 21:06:16 · 313 阅读 · 0 评论 -
[IOI2019] 景点划分
。。。。。。对于树的情况,假设断掉 (u,v)(u,v)(u,v) ,考虑 u→Su\to Su→S 的路径(SSS 表示树的重心)。令 v=Sv=Sv=S , 此时切掉的给 aaa 的部分比以前更大,且不超过 n/2n/2n/2 。所以我们找到树的重心,断掉重心到重儿子的边即可。对于一般图,找到 DFS 树的重心 S 。如果 T,S1,S2, … , >=a ,那么 a <= x <= n/2, b <= n/2 <= n-x否则考虑无向图 DFS 树的性质,有一原创 2022-05-04 17:20:10 · 464 阅读 · 0 评论