2023.8 做题笔记 / 不自量力的妄想 镌刻在心脏
不愿忘却。
早知如此绊人心,当初何必相识。
记录了好玩的题目,代码都很好写(
[ARC092F] Two Faced Edges tag:tarjan,dfs
tarjan 之后按在不在 scc 上面分讨边,发现要求不含
[CF348C] Subset Sums tag:根号分治
根号分治。将集合按照跟
具体而言,预处理重集合和每个集合的交集大小。
-
重集合修改:打上修改标记。
-
轻集合修改:在原序列暴力修改。
-
重集合查询:提前算好的 sum 加上跟重集合的贡献。
-
轻集合查询:暴力算 sum 然后加上跟重集合的贡献。
upt: 其实只要暴力算重集合与任意集合的交,然后轻集合的贡献暴力算,重集合的贡献打上 tag,每次询问就是已经被打好的轻集合贡献 + 遍历的重集合贡献。
[AGC011C] Squared Graph tag:二分图
原图乘出来非常非常非常非常抽象,考虑
[CF741C] Arpa’s overnight party and Mehrdad’s silent entering tag:二分图,构造
upt:我们用互不相同作为条件建图,那么有解和构造做一次二分图就行了。注意到单点度数一定不会超过
考虑配对显得非常难做,构造题做起来要猛一点,就像原神玩家一样!直接间歇性强制配对,然后发现肯定是有解。二分图染色?启动!
P3573 [POI2014] RAJ-Rally tag:拓扑排序,堆
首先去掉某个点肯定要修改合并信息这样子,这是个 DAG 那么可以想到预处理
[CF442C] Artem and Array tag:贪心,构造
如果一个数比两边小,随便删,可以发现肯定不劣,然后最后就是一个数组的峰的单。此时我们希望删掉的数有两种性质:取到的答案最大,删掉之后不影响别的,发现最大值和次大值旁边更大的那一个满足这个条件,取能取到的第三大值,且不可能成为某个
[ARC072F] Dam tag:建模,凸包
设
玩一个单调队列维护就可以啦,每次删掉斜率比后面小的点。有一种 跟我的可爱的 teriri 一样 可爱的做法,直接把每次加水的向量加到队列里面,不维护那种丑陋的东西也可以啦,每次就,如果斜率比不上就两个向量加起来!
[ABC191F] GCD or MIN tag:数论,枚举
考虑各种弱化拼在一起就行了。这篇题解因为 latex 被打回多次,不开心捏。任意 gcd 可以枚举约数搞 gcd 判断合不合法,然后发现
[ABC243G] Sqrt tag:dp,整除分块
事实上一直类似搞进去可以拥有很离谱的复杂度,但感觉没太大必要。
[ABC308G] Minimum Xor Pair Query tag:xor
把序列排序,xor 最小值肯定在 a[x]^a[x+1]
中出现过,感性理解就是 xor 是类似减法所以要求的是尽量接近,证明可以搞点交换。开俩 multiset 动态维护就可以了。
P9378 [THUPC 2023 决赛] 物理实验 tag:贪心
注意到权值有绝对的领先,我们考虑贪心的取。观察到如果一个集合可行,其选择没有影响可行性胡后效性,那么直接贪心(集合外的位置固定而数等价),维护选的数的集合
[AGC016D] XOR Replace tag:xor,贪心,基环树
a[1]^...^a[n-1]^a[n]=M,a[1]^...^a[n-1]^M=a[n]
所以可以当成在末尾多放一个 M 然后每次可以 swap(a[x],a[n+1])
。对于一组
每个点出入度均为 1 的情况:如果没有重复值(指
[AGC004C] AND Grid tag:构造
前缀唯一绿题(划掉。
两个答案图与起来等于原图,并且分别四(上下左右的)联通。首先原图的部分肯定要 1 进去!剩下的一个位置要不然 A 有要不然 B 有要不然 AB 都没有。考虑到这是一个构造题,AB 都没有什么的肯定是人家不喜欢的啦。
所以我们想一种办法,恰好能把 A 联通,剩下的部分全部给 B 然后 B 也可以联通。这个就有很多办法啦,第一列给左,最后一列给右,其它奇数行给左偶数行给右,或者直接构造两个蛇型玩意儿也可以。大概思路就是,拿宽度为 2,两种颜色的笔刷从边上出发用合法的颜色覆盖整个图即可。
[ARC107D] Number of Multisets tag:dp
考虑下述方式来双射数集,末尾加入一个
[CF1270G] Subset with Zero Sum tag:基环树
化丑陋的
[CF1364E] X-OR tag:交互,or,and
首先
先考
我们知道
第一种询问显然边双缩点成树然后树上倍增就可以做了,但是不知道点双怎么缩成树啊 /dk/dk。圆方树?启动!对于每一个点双新建一个点,每个点向所在点双的虚点上面连边就是可以的啦(原图中的边不要了)。对于边的询问,我们发现割边变成了一个虚点,于是乎也不需要再写一堆边双相关的东西了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具