首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

数学题(觅规律)-hdu-4371-Minimum palindrome

2013-10-08 
数学题(找规律)-hdu-4371-Minimum palindrome题目链接:http://acm.hdu.edu.cn/showproblem.php?pid4731题

数学题(找规律)-hdu-4371-Minimum palindrome

题目链接:

http://acm.hdu.edu.cn/showproblem.php?pid=4731

题目大意:

给一个n表示有n种字母(全部小写),给一个m,求一个由不超过n种字母组成的m个小写字母的串S,使得S在所有的满足要求的串中最长的回文子串长度最短。

解题思路:

显然当n>=3时肯定是abcabc这样构造。

当n=1时为aaaaaa...

当n=2时,打表可以发现规律。当m>=9时,都满足开始为aaaa,后面为以babbaa作为循环节的串。

打表截图:

数学题(觅规律)-hdu-4371-Minimum palindrome

压缩暴力打表代码:

#include<iostream>#include<cmath>#include<cstdio>#include<cstdlib>#include<string>#include<cstring>#include<algorithm>#include<vector>#include<map>#include<set>#include<stack>#include<list>#include<queue>#include<ctime>#define eps 1e-6#define INF 0x3fffffff#define PI acos(-1.0)#define ll __int64#define lson l,m,(rt<<1)#define rson m+1,r,(rt<<1)|1#pragma comment(linker, "/STACK:1024000000,1024000000")using namespace std;char temp[10][10]={"","a","ab","aab","aabb","aaaba","aaabab","aaababb","aaababbb"};char ba[7]="babbaa";int main(){   int t,n,m;   scanf("%d",&t);   for(int ca=1;ca<=t;ca++)   {       scanf("%d%d",&n,&m);       printf("Case #%d: ",ca);       if(m<=n)       {           for(int i=0;i<m;i++)             putchar('a'+i);       }       else       {           if(n==1)           {               for(int i=0;i<m;i++)                    putchar('a');           }           else if(n>=3)           {               for(int i=0;i<m;i++)               {                   int j=i%3;                   putchar('a'+j);               }           }           else           {                if(m<=8)                {                    printf("%s\n",temp[m]);                    continue;                }                printf("aaaa");                m-=4;                int num=m/6;                for(int i=1;i<=num;i++)                    printf("%s",ba);                m-=num*6;                for(int i=0;i<m;i++)                    putchar(ba[i]);           }       }       putchar('\n');   }   return 0;}



热点排行