Skip to content

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