=====A===== * 题意:$t$ 组数据,每组数据包含两个 $01$ 串 $A,B$,定义一种操作为选定一个串的前缀,将其每位取反并且翻转前缀,问经过多少次操作使得 $A$ 会变成 $B$,并给出具体方案。$\sum n\le 10^5$ * 题解:我们考虑从 $B$ 的最后一位向前进行匹配,如果当前 $A$ 的首位与此时枚举的 $B$ 的值相同,则可以先将 $A$ 的首位翻转,再将 $A$ 的这一段区间进行翻转,让 $A$ 的首位落在此时 $B$ 的位置上,如果值不同则可以直接进行第二步。考虑操作会带来什么变化,由于枚举的位数向前,因此之后 $A$ 所在的段必会被整体翻转整数次,只需要记录翻转的次数以及翻转后的首位位置即可。 =====B===== * 题意:给你一个 $n$,和 $2n$ 个数的序列,问能否由两个长度为 $n$ 的数组构造出这个序列,构造过程为每次从两个数组中取排在第一个数中小的那个数 $\sum n\le 2000$。 * 题解:对于给出的 $2n$ 序列,显然若两个数相邻且前一个数大于后一个数,这两个数必定是同一组的数,将 $2*n$ 个数分组,最后 $dp$ 判断是否可行即可。 =====C===== * 题意: * 题解: =====D===== * 题意: * 题解: =====E===== * 题意: * 题解: