1 条题解
-
0
对于任意两块相距不超过 的年糕,无论先吃哪块,都会在另一块年糕上蹭下 单位辣椒酱。
也就是说,最终蹭下辣椒酱的量与吃法无关,恒等于相距不超过 的年糕对数。
直接前缀和统计相距不超过 的年糕对数即可。
#include <bits/stdc++.h> using namespace std; const int N = 1e5 + 12; char s[N]; int pre[N]; int n; int k; int main() { freopen("ricecake.in", "r", stdin); freopen("ricecake.out", "w", stdout); int T; scanf("%d", &T); while (T--) { scanf("%d %d %s", &n, &k, s + 1); for (int i = 1; i <= n; i++) pre[i] = pre[i - 1] + s[i] - '0'; long long ans = 0; for (int i = 1; i <= n; i++) if (s[i] == '1') { int i1 = min(i + k, n); int i2 = max(i - k - 1, 0); ans += pre[i1] - pre[i2] - 1; } cout << ans / 2 << endl; } return 0; }
- 1
信息
- ID
- 197
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 2
- 标签
- 递交数
- 76
- 已通过
- 23
- 上传者