做题记录——2.28-3.4
2022.2.28
CF1381C Mastermind
令 。
那么选 的时候的充要条件是出现次数最多的颜色小于一半。
所以选 的时候大力选出现次数最多的就可以了。
CF1515F Phoenix and Earthquake
首先大力猜想,每次选和最大的两条边是最优的。方案用启发式合并,总能搞出来。貌似这个结论是对的。
更为简单的实现是找出一棵生成树。随便挑一个儿子。如果这个儿子的权值大于等于 ,就先修建这条边。否则最后修建这条边。证明归纳即可。
CF1361C Johnny and Megan's Necklace
你考虑枚举答案。然后你建 个虚点,每个点往对应虚点连边。
然后跑一个欧拉回路就行了。
CF1470C Strange Shuffle
毛估估想了个分块做法。
看了题解发现内鬼一定等于 。
那就做完了。
2022.2.29 2022.3.1
CF1637F Towers
硬点一个 h 最大的点为根。然后只需要保证每个子树内有一个叶子,塔高度大于等于当前结点即可。
CF1474E What Is It?
一个很牛逼的构造题。
想让答案尽量大,然后毛估估一个答案上界。
然后构造一个就行了。
(我在写什么废话(。
CF1439B Graph Subset Problem
首先度数小于 的都可以扬了。
然后如果此时最小度数 ,就搞定了。
否则 特判一下。
最多只会被判 次。
CF734F Anton and School
我草我差点切了,然后交上去疯狂 WA13。
搞出唯一解 之后,要带回去判一下 是否合法。
CF1391E Pairs of Pairs
麻了看错题了。以为配对的两个点之间必须有边。
首先搞出 dfs 树,然后如果有链就直接选链。
否则就同一个 的两个点配对就行了。
每个 最多失配一个点,就行了。
CF1492E Almost Fault-Tolerant Database
只想出了 的暴力做法,太菜了 /kk 。
注意到显然要换和第一列不同的数。
于是要换的数的数量就是 级别的。
然后你结合上面这个暴力,大力搞一下就没了。
CF1479C Continuous City
好题。
首先可以把 转化为 1,接下来考虑 的情况。
我们考虑构造 个点,第 个点满足 。
构造方法是第 个点向第 个点连 的边就行了。
再考虑 的情况。先把 减一,然后对于每一位,连接到对应的 号点就可以了。
CF1528D AaParsa
一开始想了个把每个点按时间分层做,然后死在了空间上,因为有 条边。
dijkstra 学傻了.jpg。
后面发现直接按照 dijkstra 的思想,每次找一个点松弛,然后暴力等待就行了。
CF923D Picking Strings
好题!!1
首先手玩一下,BC 等价。可以删去 B 前面的 A。后缀 A 动不了。
然后你就很接近正解了。
但是这题细节巨多,我 WA 了好多发,到最后忍不住看了题解。
2022.3.2
CF1438E Yurii Can Do Everything
考虑一个暴力,强行令 。
可以发现对于每个左端点,暴力枚举,复杂度是对的。
然后你 reverse 一下再做一遍就可以了。
CF1427E Xum
有两种做法,然而我都不会。
第一种是考虑每次删除最高位的 1。
具体的实现方法是构造 ,然后 的 lowbit 和 的 highbit 对齐。
然后 3 次 xor 就能删掉一位。
第二种是构造一个 满足 。
然后搞出 ,之后乱搞。
CF23C Oranges And Apples
若干年之前看过的经典 trick。
考虑按照一维排序,然后每两个之间取另一维更优的即可。
2022.3.3
SDOI2011 黑白棋
K-Nim 游戏,指每次最多取 堆中任意数量石子。
必败的充要条件是把所有石子数量转成二进制,记 表示 这一位的和,所有 。
比较容易。
CTSC2008 祭祀
在 DAG 上,最长反链=最小可重链覆盖。
传递闭包之后,等于最小不可重链覆盖。
而这个东西可以拆点之后跑二分图匹配求。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端