1093. Count PAT's (25)

来源:互联网 发布:淘宝店需要营业执照 编辑:程序博客网 时间:2024/05/13 13:47

传送门:https://www.patest.cn/contests/pat-a-practise/1093

按照自己写的思路总是超时,后来参考的别人的思路.参考自:http://blog.csdn.net/jmlikun/article/details/49977899


AC代码

#include <iostream>#include <string>#include <cstdio>#include <vector>#include <queue>#include <algorithm>#include <stack>#include <set>#include <cmath>#include <map>using namespace std;int main(){    long long counts=0;    string str;    cin>>str;    vector<int>countP(str.size(),0),countT(str.size(),0);    for (int i=0; i<str.size(); ++i) {        if(i!=0)            countP[i] = countP[i-1];        if(str[i]=='P')            countP[i]++;    }    for (int i=(int)str.size()-1; i>=0; --i) {        if(i!=str.size()-1)            countT[i] = countT[i+1];        if(str[i]=='T')            countT[i]++;    }    for (int i=0;i<str.size();++i) {        if(str[i]=='A'){            counts+=(countP[i-1]*countT[i+1])%1000000007;        }    }    printf("%lld\n",counts%1000000007);    return 0;}


0 0