ABC379B Strawberries
原题链接:B - Strawberries
Tag:模拟
题目描述
问题陈述
高桥有 \(N\) 颗牙齿,从左到右排列成一排。他牙齿目前的状况用字符串 \(S\) 表示。
如果 \(S\) 的 \(i\) 个字符是 "O",则表示左边的 \(i\) 颗牙齿是健康的。如果是 "X",则表示 \(i\) /th的牙齿有蛀牙。健康的牙齿是没有蛀牙的。
当他有 \(K\) 颗连续健康的牙齿时,他可以用这些 \(K\) 颗牙齿吃一颗草莓。吃完一颗草莓后,这些 \(K\) 牙齿就会出现龋齿,变得不健康。
求他最多可以吃多少颗草莓。
分析
先造出来一个长度为 \(k\) 且字符全都为 \(O\) 的字符串, 之后遍历给出的字符串 \(S\) 暴力匹配统计答案。
代码实现
void NeverSayNever() {
int n, k; cin >> n >> k;
string str; cin >> str;
int ans = 0;
string cor = string(k, 'O');
for (int i = 0; i + k <= n; i++) {
if (str.substr(i, k) == cor) {
ans++;
i += k - 1;
}
}
cout << ans << endl;
}
日志
本页面创建于 2024/11/10 21:20