2026/10/13衡中集训

模拟赛

T1

这个题还是挺简单的,如果虫子大于目标就/2,是\(O(logn)\)的
如果小于就是目标位置-当前位置,总时间复杂度就是\(O(logn)\)

T2

数学题,\(O(1)\)可以解决
比赛上的思路是资料分给n-1个人,剩下的资料全都给一个人
但是没有考虑剩下的都塞给一个人会大于上限,均摊不会超限的情况,所以错了一个点555
还是要多练,分类讨论加强

T3

反思:题目说的是翻转子序列而不是子串,是整体翻转而不是值翻转
结果就想成子串了,写了个贪心qwq
就是求1-2-1-2最长的子序列长度,线性dp
dp[1]表示第一个1的最长子序列长度,dp[2]是1-2的最长长度
dp[3]是1-2-1的最长长度,dp[4]是1-2-1-2的最长长度,最后答案就是这4个里面最大的一个

T4

思路没对,以为删除后会对接下来的答案产生变化
但实际上并不会,删除一个后另一个保护关系就解除了,以一换一,所以不会产生影响
所以答案就是模拟后的结果,相乘即可

专题-模拟与枚举1

AtCoder - abc471c(B题)

这个题有一个巧妙的做法,用STL的set来做就很方便
用upper_bound() it1 a=*(--it1)找第一个<=当前值的位置,lower_bound() it2 b=*it2找第一个>=当前值的位置
最后比较a和b哪个更近,移动到相应的位置,模拟就行

CodeForces - 2169B(E题)

观察题面,注意到有四个情况** >* *< ><会导致无限游,在原先判断一下就行
答案就是从左边界开始<的最大个数,或者右边界开始>的个数的最大值
注意水流后面可能有*,也要算进去
于10/14补

posted @ 2026-10-13 21:35  lzacode  阅读(5)  评论(1)    收藏  举报