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

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


#include 
#include 
#include  

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;
}

你可能感兴趣的:(C++,PAT)