PTA 乙级 1040 有几个PAT (25分) C/C++
注意本题A和T是可以重复使用的,只有P不可重复使用
暴力算法很容易超时
C/C++
1 #include<iostream> 2 3 using namespace std; 4 5 int main() 6 { 7 int p = 0, a = 0; 8 long sum = 0; 9 string str; 10 cin >> str; 11 for (int i = 0; i < str.length(); ++i){ 12 if (str[i] == 'P') ++p; //统计A前面的P的个数 13 else if (str[i] == 'A') a += p; //T前面所有的A前面P的个数相加 14 else if (str[i] == 'T') sum += a; //出现PAT总数 15 } 16 cout << sum % 1000000007; //按题目要求取余 17 18 }
默默地一点点变强,细节决定成败