1004:http://acm.hdu.edu.cn/contests/contest_showproblem.php?pid=1004&cid=879
题意:要你构造一个由小写字母组成的长度为n字符串S,使得S的回文子串最少(回文子串的概念你可以在下面的例子里面理解,其实就是“子串+回文”)
思路:
当n=1时:如'a'它的回文子串数量是1。所以n=1时,有26种S可以使得其回文子串最少。
当n=2时,如'aa','ab'前者的回文子串有'a','aa'两种,后者也是两种'a','b'。前者有26种('aa','bb','cc')后者有26 * 25=650种。合在一起676恰是图片说明 种。
当n=3时,如'aaa','aba','abc'它们的回文子串数都是3。合在一起就是图片说明
当n=4时,本质就是在n=3的情况下加一个字符,那么对于前两种,加一个字符必定会多一种回文子串,但是第三种加一个'a'时就不会多,那么此时共有262524种情况。
以此类推,都是在前一种上添加一个字符,最后发现当是'abcabcabc'形式时,回文子串最少是3,此时共有262524种S。
至此代码也就写出来了。

//team yglance+xhwl+CN.TTDragon
#include<bits/stdc++.h>
typedef long long ll;
const ll mod=1e9+7;
const ll maxn=1e5+7;
const double pi=acos(-1);
using namespace std;
int main()
{
    ios::sync_with_stdio(false);
    int t ;
    cin>>t;
    while(t--)
    {

        int n;
        cin>>n;
        if(n==1)
        {
            cout<<26<<endl;
        }
        else if(n==2)
        {
            cout<<26*26<<endl;
        }
        else if(n==3)
        {
            cout<<26*26*26<<endl;
        }
        else
        {
            cout<<26*25*24<<endl;
        }
    }
     return 0;
}