09 2022 档案
摘要:若 S 合法,则首先这个条件显然等同于没有一个 S 的非空子集满足元素个数为偶数且元素异或和为 0。 对于一个满足条件的 S,我们能加入哪些非负数使得条件仍然满足呢? 设 T 是 S 的一个元素个数为奇数的子集,令 x 为 T 中元素异或和。那么显然,x 是不能被
阅读全文
摘要:考虑在每次加入一个字符后,求出所有合法后缀(即 border)的权值和。容易想到用 KMP 算法解决。 具体的,我们维护 border 的集合。加入一个字符 ci 后,对集合的改变为: 如果一个 border 对应前缀的下一个字符不是 c,将其删除。 如果 ci=c0,加入长度为
阅读全文
摘要:先考虑两个牌堆固定了的话,最小操作次数是什么。 不妨假设两个牌堆为 A,B,并且 2n 在牌堆 B 中,则最后的目标是将 A 删空。 结论:设 d=\max\limits_{i=1}^{n}\min\left{j-i\mid A_i\lt B_j\right},则答案为 $n+d
阅读全文
摘要:考虑到一个结论就是 ai 会变成两种操作变成的数的最小值。 看着就很对啊,感性理解就好了。 我们从大到小考虑每一个值。 当访问一个值时,我们将其所有位置都标记成“未确定要被赋成前缀最大值还是后缀最大值”。然后继续访问更小的值。在访问一个更小的值时,若其最左位置位于一个未确定的位置左侧,则该未确
阅读全文
摘要:首先可以假定整个序列 c0≥c1,否则我们把 0 变成 1,1 变成 0,并翻转序列。新序列答案与原序列相同。 结论:仅操作 c0=c1 的区间的最小答案和原题一致。 证明:考虑操作了一个 c0−c1=d 的区间。区间第一个数,若是 0,那我们的操作
阅读全文
摘要:用一种更加方便的方式刻画合法序列,我们发现每一个合法序列都能通过以下操作删至不超过一个数,同样一个不合法序列一定不行。 令变量 V=0 从序列中选出两个数 x,y 满足 x or V=y or V 令 V←x or V,
阅读全文
摘要:所有数的和可以转化为对于每个 1≤i≤m,计算有多少个数 ≥i 即可。 开始时先找到 ≥i 的左端点,然后考虑这个左端点的移动,先考虑开始时在 x 右边,那么如果放 [1,i−1],那么位置不变,如果放 [i,m],那么就左移动一格。在 x 左边同
阅读全文
摘要:这种奇怪的在数列上操作,看看在前缀和 / 差分数组上发生了什么事往往能发现新大陆。 考虑 a 的前缀和 S,不难发现操作 [l,r] 就是交换 Sl−1,Sr。 所以最终是要通过交换使得 S 单调递增,且都非负。 无解情况 S 中出现相同的数 S 中出现负数 $S
阅读全文
摘要:考虑用总数(n!)减去不合法的排列数。我们现在要研究不合法的排列长什么样。 称【将子段排序后是连续的一段数值】的子段称为不合法子段。那么合法的排列,就是不存在长度在 [2,n−1] 中的不合法子段的排列。 称一个不合法子段是极长的,当且仅当不存在另一个长度小于 n 的不合法子段包含它。发
阅读全文
摘要:主要思路来自 huzhaoyang 大佬 对于两个字符串 s 和 t(保证其中每一种字符个数相同),定义 s 和 t 的相对逆序对数为 s 得到 t 的最少交换次数,显然同种字符相对顺序保持不变,因此即依次编号后的逆序对数。 问题不妨看作构造合法字符串 t 使得 s
阅读全文
摘要:传出球的最小值不为 0 时,可以将所有人传出球的数量同时减一,得到的序列不变。 所以得出结论,所有人传出的球的数量的最小值必定为 0。 观察答案的实际含义:最终序列中从每个人手上选出一个球的方案数。 每个人的球只有两种来源:自己原来没有传出去的球/上一个人传过来的球。启示我们记录球的来源以
阅读全文
摘要:假设 a 数组有序,记 cnt(x) 表示 x 的二进制表示中 1 的个数。 那么我们就是要找一个 x 使得 ∑ni=1cnt(x+an−ai) 最小。下面令 ai←an−ai。 我们考虑 x+ai
阅读全文
摘要:我的: N4IgzgphAmIFwEYAcA2ATChAaEB3AhgE6QzwIAM5aArAMw6ERgD2AroQMYTygBKAcgEEeIAHb4AttzggBwnNACWYAA4AbfAE94AM3xrIOSW1EAXeGgCc1HBPwAPeNWsLFOnfHIKIa0/k8M+KbS
阅读全文