题解 P2646 【数数zzy】

· · 题解

首先,再此orz我们班的神犇zzy。

[color=white][delete]lu~~~[/delete][/color]

本题看起来很神,然而做起来也很神~~~

言归正传,这题先依次读入字符串,遇到‘z' 记录下来

然后遇到 ‘y’就用组合数算出来。

#include<iostream>
#include<algorithm>
using namespace std;

long long  NumberOfZ,Answer;
char c;

int main()
{    
    freopen("abao.in","r",stdin);
    freopen("abao.out","w",stdout);

    while(scanf("%c",&c)!=EOF) {
        if(c=='z')++NumberOfZ;

        if(c=='y')Answer+=NumberOfZ*(NumberOfZ-1)/2;
    }

    cout<<Answer;

    return 0;
}