用户工具

站点工具


2020-2021:teams:farmer_john:2sozx:codeforces_round_658_div._1

目录

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

  • 题意:
  • 题解:
2020-2021/teams/farmer_john/2sozx/codeforces_round_658_div._1.txt · 最后更改: 2020/07/24 15:03 由 2sozx