本文主要是介绍PAT 甲级 1093 Count PAT‘s,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
#include <bits/stdc++.h>
using namespace std;
#define kMOD 1000000007
int main()
{
#ifdef LOCALfreopen("input.txt", "r", stdin);
#endifstring s;cin >> s;// 在位置i之前(包括位置i)有多少个P,位置i之后(包括位置i)有多少个Tvector<int> pre_P(s.size());vector<int> post_T(s.size());int ctr = 0;for (int i = 0; i < s.size(); ++i) {if (s[i] == 'P')pre_P[i] = ++ctr;elsepre_P[i] = ctr;}ctr = 0;for (int i = s.size() - 1; i >= 0; --i) {if (s[i] == 'T')post_T[i] = ++ctr;elsepost_T[i] = ctr;}// 计数int ans = 0;for (int i = 0; i < s.size(); ++i) {if (s[i] == 'A')ans = (ans + pre_P[i] * post_T[i] % kMOD) % kMOD;}cout << ans;
}
这篇关于PAT 甲级 1093 Count PAT‘s的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!