1 /* 2 递推:用cnt记录前缀值,查询区间时,两个区间相减 3 */ 4 #include <cstdio> 5 #include <algorithm> 6 #include <cmath> 7 #include <cstring> 8 using namespace std; 9 10 const int MAXN = 1e5 + 10; 11 const int INF = 0x3f3f3f3f; 12 char s[MAXN]; 13 int cnt[MAXN]; 14 15 int main(void) //Codeforces Round #186 (Div. 2) B. Ilya and Queries 16 { 17 scanf ("%s", s + 1); 18 int len = strlen (s + 1); 19 20 memset (cnt, 0, sizeof (cnt)); 21 for (int i=1; i<len; ++i) 22 { 23 cnt[i] = cnt[i-1] + (s[i] == s[i+1] ? 1 : 0); 24 // printf ("%d ", cnt[i]); 25 } 26 cnt[len] = cnt[len-1]; 27 28 int m; scanf ("%d", &m); 29 while (m--) 30 { 31 int l, r; scanf ("%d%d", &l, &r); 32 printf ("%d\n", cnt[r-1] - cnt[l-1]); 33 } 34 35 return 0; 36 }