您的位置:首页 > 其它

【PAT】1093. Count PAT's

2017-01-29 22:45 141 查看
关键:转化思路,转为求左边p和右边t的个数

#define LOCAL
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <string>
using namespace std;

const int INF = 1000000007;
const int N = 100010;
char str
;
int l
;

int main()
{
#ifdef LOCAL
freopen("data.in","r",stdin);
freopen("data.out","w",stdout);
#endif // LOCAL
gets(str);
int len=strlen(str);
int p=0;
for(int i=0;i<len;i++){
if(str[i]=='P') p++;
else if(str[i]=='A') l[i]=p;

}
int r=0;
int ans=0;
for(int i=len-1;i>=0;i--){
if(str[i]=='T') r++;
else if(str[i]=='A'){
ans=(ans+l[i]*r)%INF;
}
}
cout<<ans;

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: