分类讨论
lamentropetion
---
展开
-
【分类讨论】CF1747D
这个分割点假设是 k, 需要满足pre[l - 1] == pre[k] 且 位置的奇偶性要和 l 一致,因为区间长度要是奇数,那么就是去找后面第一个满足这个条件的就行。else 如果是偶数,需要看是否存在一个分割点使得一个区间可以分割成两个区间,两个区间的区间异或和都是0。这点有点难注意到,我们很容易地会以为如果一个区间的异或和是0,一定存在分割点,其实不一定,这点需要记住。如果长度是奇数,那么直接操作即可,答案一定是1。显然,如果区间异或和不是0一定无解。如果区间内全是0,答案一定是0。原创 2023-10-21 21:06:55 · 247 阅读 · 0 评论 -
【分类讨论】CF1834D
对于第一种情况,贡献的最大值就是mxlen - milen的2倍,这个没啥好说的。这是个分类讨论题,一开始还以为是枚举什么的,发现根本枚举不了。注意到最终的答案就两种情况:区间包含 or 区间不包含。如果两个区间有交,那么贡献就是不相交的两部分取大。如果两个区间无交,那么贡献就是两个len取大。实现的话就是把左端点和右端点单独拿出来就好。原创 2023-10-21 17:36:08 · 498 阅读 · 0 评论 -
【暴力DP】CF1409 F
首先有个很明显的结论是:替换的字符一定是那两个字符之一。为了计算贡献,需要把前缀 t1 的数量也放进状态里。那么替换成哪个字符贡献更大不确定,因此考虑DP。因为有操作次数限制,直接把操作放进状态里。然后就暴力分类讨论转移就好了。原创 2023-09-23 01:16:55 · 223 阅读 · 0 评论 -
【构造】CF1761 E
【代码】【构造】CF1761 E。原创 2023-08-14 19:39:01 · 159 阅读 · 0 评论 -
【构造】CF Edu 12 D
然后是n = 2的情况,如果相加是质数,就输出2个,否则就输出一个。注意到三个数一定是奇 偶 奇,只要没有1,就一定不行。这种题一定要从小数据入手,不然很有可能走歪思路。先考虑n = 1的情况,直接输出即可。想到这就很简单了,分类讨论即可。看这个集合能不能是3个数。然后是n = 3的情况。原创 2023-09-05 18:09:34 · 179 阅读 · 0 评论 -
CF Edu152 C
容易想到维护后面第一个1的位置和前面第一个0的位置,然后把所有区间都等效一下,开一个二元组的set。这些特殊case有什么共同点呢?这些区间一个区间sort之后对应一种情况。等效前和等效后的区间是一样的,直接插入即可。这样的,很明显等效之后左端点在右端点后面。但是有点问题,考虑一些特殊case。因此直接插入 {-1, -1}即可。原创 2023-09-01 21:20:20 · 365 阅读 · 0 评论 -
【分类讨论】CF1674 E
这种分类讨论的题,主要是去看答案的最终来源是哪几种情况,这几种情况得不重不漏。原创 2023-08-17 15:55:56 · 108 阅读 · 0 评论