PAT-乙级-1040. 有几个PAT(25)
2016-07-14 16:55
176 查看
1040. 有几个PAT(25)
时间限制120 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CAO, Peng
字符串APPAPT中包含了两个单词“PAT”,其中第一个PAT是第2位(P),第4位(A),第6位(T);第二个PAT是第3位(P),第4位(A),第6位(T)。
现给定字符串,问一共可以形成多少个PAT?
输入格式:
输入只有一行,包含一个字符串,长度不超过105,只包含P、A、T三种字母。
输出格式:
在一行中输出给定字符串中包含多少个PAT。由于结果可能比较大,只输出对1000000007取余数的结果。
输入样例:
APPAPT
输出样例:
2 提醒:在顺序上要p前a中t后。 思路:我们先统计t的个数,然后再统计p和a的个数,p,a都要和它后面的t组合,所以遇到a前面的t就得减去
#include<bits/stdc++.h> using namespace std; #define mod 1000000007 int main(){ string s; cin>>s; int p=0,a=0,t=0; for(int i=0;i<s.size();i++) { if(s[i]=='T') t++; } for(int i=0;i<s.size();i++){ if(s[i]=='P') p++; if(s[i]=='T') t--; if(s[i]=='A'){ a=(a+(p*t)%mod)%mod;//关键 } } cout<<a<<endl; return 0; }
相关文章推荐
- java学习总结之文件操作--ByteArrayOutputStream的用法
- 阻塞队列BlockingQueue 学习
- 使用Appledoc生成文档
- 无锁队列的实现
- CDH问题汇总
- Kafka入门学习教程
- 为什么要有虚拟地址
- hdu 3586(树形dp+二分)
- 快排调用及结构体排序
- java数字位数不够,高位补0
- Java 线程池框架核心代码分析--转
- 原型继承-------------------
- 破解Java to C# Converter
- C# and Java: Comparing Programming Languages
- 【移动适配】移动Web怎么做屏幕适配(二)
- Java虚拟机之对象探秘
- 统计学习方法---隐马尔可夫模型2
- USACO2.4.2 穿越栅栏(简单版本) (重庆一中高2018级信息学竞赛测验2) 解题报告
- Web端即时通讯技术盘点:短轮询、Comet、Websocket、SSE
- 计算机基础知识对编程的重要性