题意 使用26个小写字母组成长度为n的字符串s,要求s的子回文串个数最少,求s的数量 方法 abc代表字母 n=1 a 26 n=2 aa,ab 子回文串 aa->a,aa ab->a,b 26(aa)+26*25(ab) n=3 aaa,aba,aab,baa,abc 子回文串 aaa->a,aa,aaa aba->a,b,aba aab->a,b,aa baa->a,b,aa abc->a,b,c 26(aaa)+26*25*3(aba,aab,baa)+26*25*24(abc) n>3 对于aaa,aba,aab,baa这几种类型增加一个字母必然会增加一个子回文串 而对于abc增加一个字母变成abca之后子回文串依旧为a,b,c三个 即使增加多个字母也是 26*25*24 #include<bits/stdc++.h> using namespace std; int t,n; int main() { cin>>t; while(t--) { cin>>n; if(n<=3) cout<<pow(26,n)<<endl; else cout<<26*25*24<<endl; } }