#P5466. [PKUSC2018] 神仙的游戏
[PKUSC2018] 神仙的游戏
题目描述
小 D 和小 H 是两位神仙。他们经常在一起玩神仙才会玩的一些游戏,比如 “口算一个 4 位数是不是完全平方数” 。
今天他们发现了一种新的游戏:首先称 长度为 的前缀成为 border 当且仅当 。给出一个由 组成的字符串 ,将 中的问号用 替换,对每个 口算是否存在替换问号的方案使得 长度为 的前缀成为 border,把这个结果记做 。如果 长度为 的前缀能够成为 border 那么 ,否则 。
由于小 D 和小 H 是神仙,所以他们计算的 的长度很长,因此把计算的结果一一比对会花费很长的时间。为了方便比对,他们规定了一个校验值:$(f(1)\times 1^2)~\operatorname{xor}~(f(2)\times 2^2)~\operatorname{xor}~(f(3)\times 3^2)~\operatorname{xor}~\dots~\operatorname{xor}~(f(n)\times n^2)$ 来校验他们的答案是否相同。 表示按位异或。但是不巧,在某一次游戏中,他们口算出的校验值并不一样,他们希望你帮助他们来计算一个正确的校验值。当然,他们不强迫你口算,可以编程解决。
输入格式
一个串 ,保证每个字符都是 , 或者 。
输出格式
输出字符串的校验值, 即 $(f(1)\times 1^2)~\operatorname{xor}~(f(2)\times 2^2)~\operatorname{xor}~(f(3)\times 3^2)~\operatorname{xor}~\dots~\operatorname{xor}~(f(n)\times n^2)$。
1?0?
17
提示
样例解释
将问号填充为 1001,则这个串有长度为 1 的 border, 故 。
将问号填充为 1101,则这个串有长度为 4 的 border, 故 。
对于 和 ,可以枚举填充的字符是什么来证明他们的值是 0。
故答案是 。
数据范围
子任务编号 | 附加说明 | 分数 | |
---|---|---|---|
1 | 无 | 8 | |
2 | 输入的串没有问号 | 10 | |
3 | 数据随机 | 22 | |
4 | 问号个数至少是 | 27 | |
5 | 无 | 33 |