- 某NOIP模拟赛
- T1 一个整除分块类似的东西直接秒了
- T2
- 考虑 \([l,r]\) 的交换操作可以看成 \([l,m]\) 和 \([m,r+1]\),故我们可以对这个进行处理即可
- 第23场
- 弘文了这场我T1都没切,我考虑枚举排列和起点之后,我不知道为什么就没有去想把在A中的B和在B中的A率先交换,以及在A中的C和在C中的A交换,然后再算B,C的,理由应该归咎于状态问题加上没有充分思考,因为一开始我是有一个枚举完直接统计不合法的个数再用 \(n\) 减去这个为答案的假做法的,但是我知道这个假了之后可能就有点被控制在该如何考虑这个交换过程会发生的事上面了,我想到了可以贪心的去换,但是这个想法只存在了一瞬,因为我当时天真的认为这是很难统计的事情,导致我一直无效思考了1h,这是一个比较惨痛的教训/jk
- 无论是什么思路,既然已经全心去思考了,那么也要在这个思路上试一下,一定要确认无法可行之后才放弃
- T1
- 为啥这个讲解的做法和我一样但是我的WA了啊,某不是讲错了(
- 很显然是枚举 A 的左端点,然后就有ABC和ACB的两种方案,在这些方案中取最小值即为答案
- 没按照题解的做直接自己分类讨论了一下推出了式子
- 设 A 段有 \(s_1\) 个B,\(s_2\) 个C,B段有 \(s_3\) 个A,\(s_4\) 个C
- 分类讨论后答案为 \(s_2 + s_4 + \min(s_1, s_3)\)
- 熟悉了下NOI Linux 的用法,确认不会再像上次一样生疏了
- T2
- 暴力优化+剪枝何意味,想网络流建模想了半天,NOIP模拟赛暴力优化+剪枝放T2是否太敷衍了
- 最多只有 \(k\) 个不选,故若 \(d_i\) (与 \(i\) 有矛盾的人的个数) \(d_i > k\) 则 \(i\) 一定不选
- 把这些数删去连同它们的边都删去之后若有度数为0的点则一定会选
- 把这些不能选的标记为不选,选的选了后把这些数排除在外考虑剩下的数
- 考虑若剩下的选了的数的集合为 \(A\) , 不选的集合为 \(B\) ,因为 \(A\) 中的元素两两之间没有边,\(B\) 的边最多有 \(k * k\) 条,故当剩下的数大于 \(2 * k * k\) (实则可以更加严苛但是这个度就够了) 的时候则直接无解
- 后面就枚举选或者不选就行了加上可行性剪枝即可
- 感觉正赛不会出这么shit的题但是还是要考虑一下剪枝优化等操作的
- T3
- 考时想到了dp状态设计,但是在转移的时候犯了难,没有想到二分,原因在于这道题没想太久的缘故,以及下意识地认为不需要二分,即使在自己已经发现了很明显的单调性的情况下
- 有单调性的时候可以考虑一下二分,毕竟花不了太多时间
- 二分 \(D\) 表示最远两点的距离
- 定义 \(dp_{i,j}\) 表示在 \(i\) 处第一和第二条航道有连线的时候,总共连了 \(j\) 条线,别的点到 \(i\) 这里的最远距离的最小值
- 定义 \(op_{j,i}\) 表示在 \(i\) 有一条连线,\(j\) 有一条连线,\(j+1\) 到 \(i-1\) 没有连线的情况下内部的最远两点的距离
- 定义 \(d_{j,i}\) 表示在 \(i\) 有一条连线,\(j\) 有一条连线,\(j+1\) 到 \(i-1\) 没有连线的情况下,最远的点到 \(i\) 的距离
然后直接转移即可 弘文了一道题调了一个晚自习
posted @
2025-11-12 21:23
睡神本神
阅读(
8)
评论()
收藏
举报