PAT高效技巧算法---1040 有几个PAT (25分)

1040 有几个PAT (25分)

  • 和1045快排那个思想很像
  • 左边、右边的分别累加在数组中存入
#include<iostream>
#include<vector>
#include<cctype>
#include<map>
#include<set>
#include<sstream>
#include<string>
#include<cstdio>
#include<algorithm>

#define inf 0x3f3f3f3f
#define MOD 1000000007
const int maxn=100005;
typedef long long ll;

using namespace std;

int leftsum[maxn];

int main() {
	string s;cin>>s;
	for(int i=0;i<s.size();i++){
		if(i>0) leftsum[i]=leftsum[i-1];
		if(s[i]=='P') leftsum[i]++;
	}
	int rightsum=0,ans=0;
	for(int i=s.size()-1;i>=0;i--){
		if(s[i]=='T') rightsum++;
		else if(s[i]=='A') ans=(ans+leftsum[i]*rightsum)%MOD;
	}
	cout<<ans<<"\n";
	return 0;
}
上一篇:CCF 1040. 除法游戏


下一篇:kali virtual machine configure network