摘要: 一个结论是,不存在大小大于 2 的环。于是我们只需要保证图连通即可。从高到低考虑每一位,把数分成当前位为 0 的集合和当前位为 1 的集合,则为保证连通,必须有至少一个集合,大小小于 2。枚举删哪个集合,然后递归即可。本质是在 Trie 树上树形 DP。 阅读全文
posted @ 2020-11-19 22:06 duyiblue 阅读(508) 评论(4) 推荐(2) 编辑
摘要: 考虑序列里唯一的、出现次数最多的数 x。结论:最长的好的子段,一定满足,x 是其中出现次数最多的数之一。然后可以枚举另一个出现次数最多的数 y。把 x, y 分别看成 1, -1,其他数看成 0,则问题转化为求最长的、和为 0 的子段,这很简单。在 D2 里,根据出现次数最多的元素的出现次数,进行根号分治,出现次数大时,可能的值就少,可以套用前一种方法。出现次数小时,可以枚举出现次数,做 two pointers 阅读全文
posted @ 2020-11-19 21:01 duyiblue 阅读(1007) 评论(0) 推荐(4) 编辑
摘要: 分 n 为奇数和偶数两种情况。奇数时,容易用人类智慧构造出一种方案。偶数时,考虑何时有解,何时无解。发现一次操作不会改变所有数的异或和。那么,有解的必要条件是,所有数异或和为 0。发现此时,随便拿出一个数,对剩下 n - 1 个数按奇数的方法构造即可。 阅读全文
posted @ 2020-11-19 19:17 duyiblue 阅读(489) 评论(1) 推荐(2) 编辑