区块链技术博客
www.b2bchain.cn

2020杭电多校集训-Distinct Sub-palindromes的讲解

这篇文章主要介绍了2020杭电多校集训-Distinct Sub-palindromes的讲解,通过具体代码讲解7643并且分析了2020杭电多校集训-Distinct Sub-palindromes的讲解的详细步骤与相关技巧,需要的朋友可以参考下

本文实例讲述了2020杭电多校集训-Distinct Sub-palindromes的讲解。分享给大家供大家参考文章查询地址https://www.b2bchain.cn/7643.html。具体如下:

题目:
S is a string of length n. S consists of lowercase English alphabets.

Your task is to count the number of different S with the minimum number of distinct sub-palindromes. Sub-palindrome is a palindromic substring.

Two sub-palindromes u and v are distinct if their lengths are different or for some i (0≤i≤length), ui≠vi. For example, string “aaaa” contains only 4 distinct sub-palindromes which are “a”, “aa”, “aaa” and “aaaa”.

传送门:problem 6754
题目大意:求用最少的不同子回文串构成不同的S的字符串的数量,其中,S由小写英文字母组成,子回文串是回文串的子串

思路:

  1. n=1时,不难发现,S直接由26种英文字母构成即可
  2. n=2时,最少的不同子回文串有2种, 因为S的类型只可能有XX,XY,YX,这三种,而XX有X,XX两种,XY有X,Y两种,YX同XY, 因此,由于可以重复,此时S的数目就是26*26=676,即每个位置都有26种选择;
  3. n=3时,最少的不同子回文串有3种,因为S的类型只可能有XXX,XXY,XYX,XYZ等典型的4种, 对于XXX,有XXX,XX,X3种,对于XXY有XX,X,Y3种,对于XYX,有XYX,X,Y3种,对于XYZ,有X,Y,Z3种,因此,由于可以重复,此时S的数目就是262626=17576.
  4. n=4时,典型的S有XXXX,XXYX,XXYY,XYZX等4种,对于XXXX,显然4种不同子回文串,对于XXYX,有X,Y,XX,XYX4种, 对于XXYY,显然4种,对于XYZX,只有3种,因此,由于至少得有三个不同的元素,此时S的数目就相当于从26个里面有顺序的选3个,即A(26,3)=15600;
  5. n=5,6,……时,我们完全可以进行XYZXYZX等类似的扩展,这样子,不同的子回文串一定都是最少的3,因此,n>=4时,S的数目就都一样了,即15600种。

代码
直接switch相应输出即可

#include <iostream> using namespace std;  int main() {     int t;     ios::sync_with_stdio(false);     cin.tie(0);     cout.tie(0);     while(cin>>t)         while(t--)         {             int n;             cin>>n;             switch(n)             {                 case 1:     cout<<26<<endl;break;                 case 2:     cout<<676<<endl;break;                 case 3 :    cout<<17576<<endl; break;                 default :   cout<<15600<<endl;             }         }     return 0; }  

本文地址https://www.b2bchain.cn/7643.html

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 2020杭电多校集训-Distinct Sub-palindromes的讲解
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们