前缀和板子题,顶多橙题。适合像我一样的蒟蒻练手。。
#include<bits/stdc++.h>
using namespace std;
const int N = 1E6 + 10;
int sum[N];
string s;
int q;
int main(){
cin >> s;
int n = s.size();
s = " " + s;
for(int i = 1;i <= n;i++){
int add;
if(s[i] == 'P') add = 3;
if(s[i] == 'p') add = 2;
if(s[i] == 'G') add = 1;
if(s[i] == 'g') add = 0;
if(s[i] == 'm') add = 0;
sum[i] = sum[i - 1] + add;
}
cin >> q;
while(q--){
int l, r;
cin >> l >> r;
cout << sum[r] - sum[l - 1] << "\n";
}
}
感觉本人码风还可以。

京公网安备 11010502036488号