1 条题解
-
0
#include <bits/stdc++.h> int main() { int n, m; scanf("%d%d", &n, &m); char str[20]; int a[20][20]; std::map<int, int> Map; while (m--) { for (int i = 0; i < n; ++i) { scanf("%s", str); for (int j = 0; j < n; ++j) { a[i][j] = (str[j] == 'R'); } } for (int i = 0; i < n - 1; ++i) { for (int j = 0; j < n - 1; ++j) { if (a[i][j]) { a[i][j] ^= 1; a[i + 1][j] ^= 1; a[i][j + 1] ^= 1; a[i + 1][j + 1] ^= 1; } } } int state = 0; for (int i = 0; i < n - 1; ++i) state = state << 1 | a[i][n - 1]; for (int i = 0; i < n; ++i) state = state << 1 | a[n - 1][i]; Map[state] += 1; } int ans = 0; for (auto &[k, v]: Map) { ans += v * (v - 1) / 2; } printf("%d\n", ans); }
- 1
信息
- ID
- 10656
- 时间
- 1000ms
- 内存
- 1024MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者