- CF1967B2 0.25 数学 积累trick \(c|d\) 隐藏了一个 \(c<=d\)
- 首先我很快推出来的是,设 \(a = c\cdot k,b = d \cdot k\),且 \(\gcd(c,d)=1\),则条件 \(b \cdot \gcd(a,b)\) 是 \(a+b\) 的倍数可以转化为 \(c+d | k\),关键性质是 \(\gcd(c+d,c) = \gcd(c,d) = 1\),故 \(c+d|d\cdot k\) 可以变为 \(c+d|k\),故我们,到这里我想的是看看能不能直接莫比乌斯反演,然后我发现毕竟困难/jk,然后这里思路就断了
- 观摩了题解我发现了一个特别牛的性质就是说 \(c+d|k\) 则 \(c<k,d<k\) 则 \(c<\frac{a}{c}\) 故 \(c^2 < a\) 故我们可以直接枚举 \(c\) 和 \(d\) 进行计算
- 感觉没做出来的话是因为没有想到 \(c|d\) 可以转化成 \(c<=d\)
- P10465 0.25 发现题目性质题,ad
- 首先我想到了考虑最终状态,每个双端队列的下标一定是 先递减再递减的,元素是 单调不降的,并且元素是在从小到大排序后的序列中连续的一段
- 所以我就考虑是否可以把所有元素从小到大排序,记录初始的下标,然后去贪心地选择序列即可
- 相同的元素一定是要放在同一个集合的,不然会无解或者不优
- CF1997E 0.25 线段树,树状数组
- 法一
- 感觉想的很快,就是直接从 \(k=n\) 开始从大到小枚举k,我们可以发现怪物肯定是由被选择变成不被选择的,故我们直接上可持久化线段树维护
- 对于每个 \(k\) 直接线段树上二分 \(\frac{n}{k}\) 次即可,二分总和为 \(O(N \log{N})\) 的加上 \(\log{N}\) 的复杂度就是 \(O(N \log{N}^2)\) 的,空间是 \(N \log{N}\) 的
- 这道题几乎是10min不到就想出来了的,证明自己的线段树敏感度增强了
- 法二
- 带上了一点点脑子,我们可以预处理 \(f_i\) 表示最小的能让第 \(i\) 个怪物进行战斗的 \(k\)
- 然后用二分用树状数组维护即可,可以优化空间
- CF2004E 0.25 SG函数
- 很明显是一道博弈论的题目,发现有 \(n\) 堆实际上只需要把每一堆的 SG 值异或起来就行了
- 考虑如何求解 SG 值
- 考虑 SG 值的定义是 SG(0) = 0,SG(1) = 1, SG(2) = 0
- \(x>=3\) 若 \(x\) 是质数
- 则 \(SG(x) = mex_{y=1}^{x-1} {SG(y)}\)
- 很容易发现它的值就是它是第几个质数
- 若 \(x\) 不是质数
- 则 \(SG(x) = mex_{y=1}^{x-1} {SG(x-y)}, (x,y) = 1\)
- 然后这里我卡了很久,大概20多min,实在做不下去牢了翻了题解,发现题解 “通过打表发现……”
- 积累trick : 遇到SG函数题的方式最好是打一个表后再猜结论再证明
- 所以可以发现合数 \(x\) 的 \(SG(x) = SG(y)\) 其中 \(y\) 是 \(x\) 的最小质因子
- P7961 0.25 DP
- 定义 \(f_{i,j,k,e}\) 表示到了从低到高到了第 \(i\) 位,选了 \(j\) 个 \(a\) 中的元素有 \(k\) 个二进制位上是 1,对下一位的进位是 \(e\)
- 直接 DP 转移即可
- c+o/2 要写成(c+o)/2 不然是错的/fn
- CF2018B 0.25
- 对一开始我读错题了,我读成了在树上进行这个操作,但是我想出了解法,是换根线段树合并的解法,感觉自己的数据结构能力似乎有了较大的提升
- 然后我要写的时候发现自己读错题了/jk 我没有落实 读题三遍,一定要落实!
- 然后很容易发现如果固定了一个起点那么我们肯定是优先往 \(a_i\) 较小的地方征服城市
- 然后这其实是一个对于序列的问题
- 说一下很容易发现的一个性质是对于 \(i\) 来说符合要求的一定是 \([i-a_i+1,i+a_i-1]\) 这一区间内的数,故符合条件的起点一定是在 \(n\) 个区间的交集内的数。
- 然后这时候我想了一会,思考有没有一种可能符合要求的起点位置是连续的,我通过反证法验证了这个事情
- 我就再想如果不符合条件的是什么样子的 \(x < y < z\) \(y\) 是起点,不妨设 \(a_x < a_z\) 若 \(a_z <= z-x\) 那么才会出现 \(y\) 不符合条件的情况,而且是没有符合条件的起点了
- 故我们直接模拟判断即可
- AT_arc084_b 0.25
- 比较巧妙的01BFS?我甚至思考了20多min才想到这个,之前一直在想能不能发掘最优倍数的性质
- 第20场
- T1 秒了
- T2 我不行了,啥性质都分析出来了,就是没有想到把第 \(i\) 个物品合并放到第 \(i+1\) 里去,那我能说啥呢
- 见过的套路不够多加上当时的脑袋比较混沌,加上自己比较蠢没有想到可以这样子做,实际上我是想到了可以合并变成第 \(i+1\) 大的大小的但是我没有想到可以给它放到后面去处理,我是直接想用背包处理的,我太蠢了深刻反思
posted @
2025-11-08 11:21
睡神本神
阅读(
3)
评论()
收藏
举报