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