hdu 4731 构造

来源:互联网 发布:程序员和产品经理对骂 编辑:程序博客网 时间:2024/05/07 13:03

妈蛋。。。为毛我就找不出规律呢。。。

分三种情况

当M==1时,全a

当M>=3时,abc循环

当M==2时,当N <=8时,直接列举

当N>=9时,aaaa打头,babbaa循环

AC代码如下:

#include <iostream>#include <cstring>#include <cstdio>#include <string>#include <algorithm>using namespace std;string s[10];int main(){    int T, N, M, Case = 1;    s[0] = "babbaa";    s[1] = "a";    s[2] = "ab";    s[3] = "aab";    s[4] = "aabb";    s[5] = "aaaba";    s[6] = "aaabab";    s[7] = "aaababb";    s[8] = "aaababbb";    scanf( "%d", &T );    while( T-- ){        scanf( "%d%d", &M, &N );        printf( "Case #%d: ", Case++ );        if( M == 1 ){            for( int i = 0; i < N; i++ ){                printf( "a" );            }            printf( "\n" );        }else if( M >= 3 ){            for( int i = 0; i < N / 3; i++ ){                printf( "abc" );            }            if( N % 3 == 1 ){ printf( "a" ); }            if( N % 3 == 2 ){ printf( "ab" ); }            printf( "\n" );        }else{            if( N < 9 ){                cout << s[N] << endl;            }else{                printf( "aaaa" );                for( int i = 0; i < ( N - 4 ) /6; i++ ){                    printf( "babbaa" );                }                for( int i = 0; i < ( N - 4 ) % 6; i++ ){                    printf( "%c", s[0][i] );                }                cout << endl;            }        }    }    return 0;}


0 0
原创粉丝点击