hdu 4731
一道找规律的题,但今天的智商捉急,一直都想不到点子上;
比赛之后和别人讨论的时候,在n=2的情况下,前面两个是aa,后面就接着很多个aababb,然后最后再判断下就行了~~~
以后对于这种题还是不要太相信自己的主观了,打个表靠谱点!
代码:
1 #include <cstdio> 2 #include <cstring> 3 char pre[][10] = {"a", "ab", "aab", "aabb", "aaaba", "aaabab", "aaababb", "aaababbb"}; 4 char fix[][10] = {"a", "aa", "aaa", "aaaa", "aabab", "aababb"}; 5 int main() 6 { 7 int t,n,m,ca=1; 8 scanf("%d", &t); 9 while(t--) 10 { 11 scanf("%d%d", &m, &n); 12 printf("Case #%d: ",ca++); 13 if(m == 1) 14 { 15 for(int i = 0; i < n; i++) putchar('a'); 16 } 17 else if(m > 2) 18 { 19 for(int i = 0; i < n; i++) 20 { 21 if(i%3==0)putchar('a'); 22 if(i%3==1)putchar('b'); 23 if(i%3==2)putchar('c'); 24 } 25 } 26 else 27 { 28 if(n <= 8) printf("%s", pre[n-1]); 29 else 30 { 31 printf("aa"); 32 n-=2; 33 int a=n/6; 34 int b=n-n/6*6; 35 for(int i=0;i<a;i++) 36 printf("aababb"); 37 printf("%s",fix[b-1]); 38 } 39 } 40 printf("\n"); 41 } 42 return 0; 43 }