【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;
}
#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;
}
相关文章推荐
- 1093. Count PAT's (25)解题报告
- PAT 1093 CountPAT
- 1040. 有几个PAT(25)PAT乙级&&1093. Count PAT's (25) PAT甲级
- 1093. Count PAT's
- PAT 1093. Count PAT's (25)
- 1093. Count PAT's
- 1093. Count PAT's (25)
- PAT 1093. Count PAT's
- 1093. Count PAT’s (25)-统计字符串中PAT出现的个数
- 1093. Count PAT's (25)
- 1093. Count PAT's (25)
- PAT 1093. Count PAT's (25) 求顺序不变的固定子序列数量
- pat1093 Count PAT's
- 1093. Count PAT's (25)
- 1093. Count PAT's (统计PAT的个数)
- 1093. Count PAT's
- 1093. Count PAT's 解析
- 1093.Count PAT's
- 1093 count PAT's
- 1093. Count PAT's (25)