1884. COW

1884. COW,第1张

1884. COW 1884. COW

奶牛贝茜在她最喜欢的牧场中发现了一块石碑,上面刻有神秘的碑文

碑文的文字似乎来自一种神秘的古代语言,可看作一个只包含 C,O,W 三种字符字符串

尽管贝茜无法解密该文字,但是她很欣赏 C,O,W 按顺序构成她最喜欢的单词 COW。

她想知道 COW 在碑文中一共出现了多少次。

她不介意 C,O,W 之间是否存在其他字符,只要这三个字符按正确的顺序出现即可。

她也不介意多个不同的 COW 是否共享了一些字符。

例如,COW 在 CWOW 中只出现一次,在 CCOW 中出现两次,在 CCOOWW 中出现八次。

给定碑文中的文字,请帮助贝茜计算 COW 出现的次数。

输入格式

第一行包含 N。

第二行包含一个长度为 N 的字符串,其中只包含字符 C,O,W。

输出格式

输出给定字符串中 COW 作为子序列(不一定连续)的出现次数。

数据范围

1≤N≤105

输入样例:
6
COOWWW
输出样例:
6
代码:
//状态机dp 滚动数组优化
#include 
using namespace std;

typedef long long LL;

const int N = 1e5 + 10;

int n;
char ch[N];

int main()
{
    cin >> n >> ch;

    LL a = 0, b = 0, c = 0;
    for (int i = 0; i < n; i++)
    {
        if (ch[i] == 'C')
            a++;
        else if (ch[i] == 'O')
            b += a;
        else
            c += b;
    }

    cout << c << endl;
    return 0;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5713933.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存