A1093 Count PAT's (25 分)
Posted tsruixi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了A1093 Count PAT's (25 分)相关的知识,希望对你有一定的参考价值。
一、技术总结
- 这是一个逻辑题,题目大职意思是可以组成多少个PAT,可以以A为中心计算两边的P和T,然后数量乘积最后相加便是答案。
- 还有一个注意的是每次相加后记得mod,取余,不要等到最后加完再取余,会报错可能会溢出。
二、参考代码
#include<iostream>
#include<cstring>
using namespace std;
const int maxn = 100010;
const int inf = 1000000007;
int leftNump[maxn] = {0};
string str;
int main(){
getline(cin, str);
int len = str.length();
for(int i = 0; i < len; i++){
if(i > 0) leftNump[i] = leftNump[i-1];
if(str[i] == 'P'){
leftNump[i]++;
}
}
int ans = 0, rightNumT = 0;
for(int i = len-1; i >= 0; i--){
if(str[i] == 'T') rightNumT++;
else if(str[i] == 'A'){
ans = (ans + leftNump[i] * rightNumT) % inf;
}
}
cout << ans;
return 0;
}
以上是关于A1093 Count PAT's (25 分)的主要内容,如果未能解决你的问题,请参考以下文章
PAT Advanced 1093 Count PAT's (25分)
1093. Count PAT's (25)计数——PAT (Advanced Level) Practise