.Distinct Sub-palindromes--------------------------思维(结论)

1.Distinct Sub-palindromes
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
题意:
长度为n,本质不同的回文子串个数最少的由小写字母‘a’~'z’组成的数量

解析:

n==1 设字符为x.那么本质不同的回文子串个数就是: 'a'~'z'26个
n==2 设字符为x,y   那么长度为2的类型为 xx,xy   对于xx字符串的回文子串有 x,xx
对于xy字符串的回文子串有x,y 所以本质不同的回文子串个数为2 那么方案数为26*26

n==3 设字符为x,y,z 那么长度为3的类型xxx,xxy,xyx,yxx,xyz 
对于xxx回文子串 x,xx,xxx 有3个
对于xxy回文子串 x,xx,y   有3个
对于xyx回文子串 x,y,xyx  有3个
对于yxx回文子串 y,x,xx   有3个
对于xyz回文子串 x,y,z    有3个
所以本质不同的回文子串个数为3,那么方案数就是26*26*26

n>=4 我们就构造成abcabcabc....这样会使得本质不同的回文子串个数最少为3(其他的答案都会超越3)
方案数为:26*25*24
#include<bits/stdc++.h>
using namespace std;
int t,n;
int main()
{
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d",&n);
		if(n==1) printf("26\n");
		else if(n==2) printf("%d\n",26*26);
		else if(n==3) printf("%d\n",26*26*26);
		else
		{
			printf("%d\n",26*25*24);
		}
	}
 } 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值