Kitty猫基因编码

原题链接: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 }

 

posted @ 2017-10-28 22:40  ShawnZhou_Aether  阅读(691)  评论(0编辑  收藏  举报