Codeforces Round #447 (Div. 2) A. QAQ 暴力

来源:互联网 发布:编译c 的软件 编辑:程序博客网 时间:2024/06/06 15:53

题意:

给定字符串,问其中有多少个 “QAQ”,可以不按顺序;

思路:

“A” 是关键点,找到每个“A”构成的 “QAQ”就是答案;

扫字符串,每遇到一个A,他左边的“Q”的个数  *  他右边的“Q”的个数,就是这个“A”组成的个数


#include<iostream>#include<algorithm>#include<cstdio>#include<cstdlib>#include<cstring>#include<string>#include<cmath>#include<set>#include<queue>#include<stack>#include<map>#define PI acos(-1.0)#define in freopen("in.txt", "r", stdin)#define out freopen("out.txt", "w", stdout)using namespace std;typedef long long ll;typedef unsigned long long ull;const int maxn = 100 + 7, maxd = 670000 + 7, mod = 1e9 + 7;const int INF = 0x7f7f7f7f;int n;char s[maxn];int sum[maxn] = {0};int main() {    scanf("%s", s+1);    n = strlen(s+1);    //cout << n << endl;    for(int i = 1; i <= n; ++i) {        sum[i] = sum[i-1] + ( s[i] == 'Q' ? 1 : 0 );    }    int ans = 0;    for(int i = 1; i <= n; ++i) {        if(s[i] == 'A') {            ans += (sum[i] * (sum[n]-sum[i]));        }    }    cout << ans << endl;    return 0;}


原创粉丝点击