A. 活着的证据

Solution

简单分类讨论:

  • 如果 ,位数很多,优先构造位数长的,直接先填充5,再填充1。
  • 优先构造8,注意要维护 的值,如果满足大于等于3,说明可以放8(因为每填一个数字8,减少1, 减少4),如果等于2,就放7,等于1就放6,最后肯定会退化成情况1,或者 ,此时再讨论一下即可。

好像写的挺复杂的。。。

Code

https://ac.nowcoder.com/acm/contest/view-submission?submissionId=48733831

B. 寻寻觅觅寻不到

Solution

字符串哈希,设给定的字符串为 ,长度为 ,那么依据题意可以分成三段:

判断这三段都相等即可,直接枚举 做字符串哈希

Code

https://ac.nowcoder.com/acm/contest/view-submission?submissionId=48733830

C. 踩不出足迹

Solution

简单 ,设异或为 , 同或为 表示到了第 个位置时取异或的最大值, 表示到了第 个位置同或取得最大值,做转移即可,注意可能要开 ? 我也不知道,反正开了不会错。

:发现自己做法属于误打误撞hhhh
实际上我们知道同或的意义是 后再异或 (k个),显然做两次同或后跟做了两次异或没有区别,所以比较显然的做法是维护一个异或和 ,然后判断 即可,即做不做一次同或。

Code

dp:https://ac.nowcoder.com/acm/contest/view-submission?submissionId=48734693
正解:https://ac.nowcoder.com/acm/contest/view-submission?submissionId=48734909