题意
字符串s由小写字母构成,长度为n
要求:长度为n条件下,s的 不同回文子串数 最少
求所有满足情况的s的种类
思路
1.n=1
s的不同回文子串数最少为1,即为X型
共有26种;
2.n=2
s的不同回文子串数最少为2,即为XX型(回文子串:X,XX),XY型(X,Y)
共:26+26 * 25,恰为26的平方
3.n=3
s的不同回文子串数最少为3,恰好长度为3的所有类型的不同回文子串数都是3
即为:XXX , XXY , XYX , YXX , XYZ
共: (26) + (26 * 25) + (26 * 25) + (26 * 25) + (26 * 25 * 24),恰为26的三次方
4.n=4
s可能为XXXY,XXYX ,YXXX…等许多类型
在这些类型中,s的不同回文子串数最少为3,有且仅有一种类型,XYZX
(注:XYZY和XYZZ不行,都是4种)
共:26 * 25 * 24种
只要超过3位的,最少的一定是XYZXYZXYZ…型的,并且结果都是26 * 25 * 24
代码
#include<stdio.h>
#include<math.h>
#include<algorithm>
using namespace std;
int main()
{
int t,n,m;
scanf("%d",&t);
while(t--){
scanf("%d",&n);
if(n<=3) m=pow(26,n);
else m=26*25*24;
printf("%d\n",m);
}
return 0;
}