编程题
异或变换 ### 题目描述 小蓝有一个 $01$ 串 $s = s_1 s_2 s_3 \cdots s_n$。 以后每个时刻,小蓝要对这个 $01$ 串进行一次变换。每次变换的规则相同。 对于 $01$ 串 $s = s_1 s_2 s_3 \cdots s_n$,变换后的 $01$ 串 $s′ = s′_1s′_2s′_3\cdots s′_n$ 为: $s′_1 = s_1$; $s\′_i = s_{i−1}$ $\oplus s_i$。 其中 $a \oplus b$ 表示两个二进制的异或,当 $a$ 和 $b$ 相同时结果为 $0$,当 $a$ 和 $b$ 不同时结果为 $1$。 请问,经过 $t$ 次变换后的 $01$ 串是什么? ### 输入描述 输入的第一行包含两个整数 $n, t$,分别表示 $01$ 串的长度和变换的次数。 第二行包含一个长度为 $n$ 的 $01$ 串。 ### 输出描述 输出一行包含一个 $01$ 串,为变换后的串。 ### 输入输出样例 #### 示例 >输入 ```txt 5 3 10110 ``` >输出 ```txt 11010 ``` ### 样例说明 初始时为 $10110$,变换 $1$ 次后变为 $11101$,变换 $2$ 次后变为 $10011$,变换 $3$ 次后变为 $11010$。 ### 评测用例规模与约定 对于 $40$% 的评测用例,$1 ≤ n ≤ 100, 1 ≤ t ≤ 1000$。 对于 $80$% 的评测用例,$1 ≤ n ≤ 1000, 1 ≤ t ≤ 10^9$。 对于所有评测用例,$1 ≤ n ≤ 10000, 1 ≤ t ≤ 10^{18}$。
查看答案
赣ICP备20007335号-2