1093. Count PAT's (25)解题报告

来源:互联网 发布:彩票通软件下载 编辑:程序博客网 时间:2024/06/10 05:10

每遇到一个P,把P计数器加一。每遇到一个A,把A计数器加上P计数器的值。每遇到一个T,把T计数器加上A计数器的值。按题目要求,A计数器和T计数器要对1000000007取余,否则可能上溢。


#include <iostream>#include <cstdio>#include <cstdlib> const int N = 1000000007;const int M = 110000;int main(int argc, char** argv) {char str[M];int Pcnt, Acnt, Tcnt, i;Pcnt = Acnt = Tcnt = 0;scanf("%s", str);for(i = 0; str[i] != '\0'; i++){if(str[i] == 'P'){Pcnt++;}else if(str[i] == 'A'){Acnt += Pcnt;Acnt %= N;}else if(str[i] == 'T'){Tcnt += Acnt;Tcnt %= N;}}printf("%d", Tcnt);return 0;}

0 0
原创粉丝点击