码迷,mamicode.com
首页 > 其他好文 > 详细

A1093 Count PAT's (25 分)

时间:2019-11-18 18:06:26      阅读:42      评论:0      收藏:0      [点我收藏+]

标签:string   总结   str   std   using   ==   溢出   ios   相加   

一、技术总结

  1. 这是一个逻辑题,题目大职意思是可以组成多少个PAT,可以以A为中心计算两边的P和T,然后数量乘积最后相加便是答案。
  2. 还有一个注意的是每次相加后记得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 分)

标签:string   总结   str   std   using   ==   溢出   ios   相加   

原文地址:https://www.cnblogs.com/tsruixi/p/11883661.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!