标签:
提交代码
#include<iostream> #include<cstring> #include<string> #include<cmath> #include<map> #include<cstdio> #include<vector> #include<algorithm> using namespace std; const int maxn=200000; const int inf=2100000000; long long mod=1000000007; char s[maxn]; int a[maxn]; int b[maxn]; int main() { int n,m,i,k,t,j; scanf("%s",s); n=strlen(s); long long ans=0; int num=0; int cnt=0,cnt2=0; //统计A前面的P的个数 for(i=0;i<n;i++) { if(s[i]=='P')num++; else if(s[i]=='A') { a[cnt++]=num; } } cnt2=cnt-1;num=0;//统计A后面的T的个数 for(i=n-1;i>=0;i--) { if(s[i]=='T')num++; else if(s[i]=='A') { b[cnt2--]=num; } } for(i=0;i<cnt;i++)//计算总和 { ans+=a[i]*b[i]%mod; ans%=mod; } printf("%lld\n",ans%mod); return 0; }
1093. Count PAT's (25)想法题吧,算是排列组合吧
标签:
原文地址:http://blog.csdn.net/u013167299/article/details/44261891