1 条题解
-
1
由题意可以列出一个 元异或方程组,且每个方程中只有 个未知数。直接钦定任意一个值后用代入法递归解方程即可。
#include <bits/stdc++.h> using namespace std; const int N = 1e6 + 12; bool ok[N], ans[N]; int n, k; string s; void fill(int i) { if (ok[i]) return; ok[i] = true; int next = (i + k) % n; ans[next] = ans[i] ^ (s[next] - '0'); fill(next); } int main() { freopen("lottery.in", "r", stdin); freopen("lottery.out", "w", stdout); cin >> n >> k >> s; reverse(s.begin(), s.end()); k %= n; for (int i = 0; i <= n - 1; i++) fill(i); for (int i = n - 1; i >= 0; i--) putchar(ans[i] + '0'); return 0; }
- 1
信息
- ID
- 143
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 4
- 标签
- 递交数
- 15
- 已通过
- 3
- 上传者