原题链接:https://www.luogu.org/problemnew/show/2562#sub

简单的递归题。记录一下前缀和然后二分求解就好。

参考代码:

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #define maxn 2000005
 5 using namespace std;
 6 int s[maxn];
 7 int num;
 8 void find(int l,int r){
 9     if (s[r] - s[l-1] == 0){
10         printf("A");
11         return;
12     }
13 
14     if (s[r] - s[l-1] == r - l + 1){
15         printf("B");
16         return ;
17     }
18     printf("C");
19     int mid = (l + r) >> 1;
20     find(l,mid);
21     find(mid+1,r);
22 }
23 int main(){
24     while (1){
25         char c = getchar();
26         if (c != '0' && c != '1')
27             break;
28         s[++num] = s[num-1] + c - '0';
29     }
30     find(1,num);
31     return 0;
32 }

 

相关文章:

  • 2021-07-08
  • 2022-01-10
  • 2021-07-23
  • 2021-08-25
  • 2021-12-04
  • 2022-12-23
  • 2022-12-23
  • 2021-12-04
猜你喜欢
  • 2021-06-25
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案