http://acm.hdu.edu.cn/showproblem.php?pid=4731
智商又一次秀了下限 找规律 。。。。
m=1 , 输出n 个'a'
m>=3 输出 循环的 abc
主要就是m=2 这个。。。
m | 结果 | value |
2 | ab | 1 |
3 | aab | 2 |
4 | aabb | 2 |
5 | aaaba | 3 |
6 | aaabab | 3 |
7 | aaababb | 3 |
8 | aaababbb | 3 |
9 | aaaababba | 4 |
10 | aaaababbaa | 4 |
11 | aaaababbaaa | 4 |
12 | aaaababbaaaa | 4 |
13 | aaaababbaabab | 4 |
14 | aaaababbaababb | 4 |
15 | aaaababbaababba | 4 |
16 | aaaababbaababbaa | 4 |
17 | aaaababbaababbaaa |
之后就是代码了。。。。。。智商啊。。
#include<cstdio>
#include<cstring>
#include<cmath>
#include<queue>
#include<algorithm>
#include<vector>
using namespace std;
#define INF 100000000
int t,n,m;
char ss[10]="babbaa";
int main()
{
//freopen("in.txt","r",stdin);
int i,j,k,time=0;;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&m,&n);
printf("Case #%d: ",++time);
if(m==1)
{
for(i=1;i<=n;i++) printf("a");
puts("");
}
else if(m>=3)
{
int tmp=n;
while(tmp>=3)
{
printf("abc"); tmp-=3;
}
if(tmp==1) printf("a");
else if(tmp==2) printf("ab");
puts("");
}
else if(m==2)
{
int tmp=n;
if(tmp==1) printf("a");
else if(tmp==2) printf("ab");
else if(tmp==3) printf("aab");
else if(tmp==4) printf("aabb");
else if(tmp==5) printf("aaaba");
else if(tmp==6) printf("aaabab");
else if(tmp==7) printf("aaababb");
else if(tmp==8) printf("aaababbb");
else if(tmp==9) printf("aaaababba");
else if(tmp==10) printf("aaaababbaa");
else
{
printf("aaaa");
while(tmp-4>=6)
{
printf("babbaa");
tmp-=6;
}
tmp-=4;
if(tmp==1) printf("a");
else if(tmp==2) printf("aa");
else
{
for(i=0;i<tmp;i++) printf("%c",ss[i]);
}
}
puts("");
}
}
return 0;
}