走进“回文”的神秘世界中

走进“回文”的神秘世界中在平时生活中,有一种现象经常会引起我们的注意和好奇,那就是“回文”。有一副据说是至今无解的对联“上海自来水来自海上”就是一个经典的回文的例子。同样的,在信息学竞赛中也有各种各样与回文有关的题目。下面我们一起来走进这个神秘的世界吧——(热身题)回文质数(FromUSACO)因为151即是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以151号是回文质数。写一个程序来找出范围[a,b](5<=a<b<=100,000,000)间的所有回文质数。、输入格式第1行:二个整数a和b样例输入5500输出格式输出一个回文质数的列表,一行一个。样例输出57111011311511811913133533733839999从此题数据范围来看,若用朴素的循环数字表进行判断在时间限制内无法得解,那么就需要我们利用回文数的性质来进行优化,这里我们可以采用构造法进行解答。如果要构造出n位数中的所有回文数,我们可以通过回文数左右相同的性质只构造出n位数中的左半部分,右半部分镜象处理,当n是奇数时,将前1~[n/2]+1镜象后添加到右半部分,到n是偶数时将前1~[n/2]镜象后添加到右半部分,这样即可将复杂度降为sqrt(10^k)(当n为奇数时,k=n+1/2,当n为偶数时,k=n/2);如此一来时间复杂度即可满足题目要求,再加以素数判断,问题得解。(标准程序:hw_1.cpp)热身完毕了吗?那么真正的挑战就开始了——DP类型的回文类型题:(例题1)调整队形学校艺术节上,规定合唱队要参加比赛,各个队员的衣服颜色不能很混乱:合唱队员应排成一横排,且衣服颜色必须是左右对称的。例如:“红蓝绿蓝红”或“红蓝绿绿蓝红”都是符合的,而“红蓝绿红”或“蓝绿蓝红”就不符合要求。合唱队人数自然很多,仅现有的同学就可能会有3000个。老师希望将合唱队调整得符合要求,但想要调整尽量少,减少麻烦。以下任一动作认为是一次调整:1、在队伍左或右边加一个人(衣服颜色依要求而定);2、在队伍中任两个人中间插入一个人(衣服颜色依要求而定);3、剔掉一个人;4、让一个人换衣服颜色;老师想知道就目前的队形最少的调整次数是多少,请你编一个程序来回答他。因为加入合唱队很热门,你可以认为人数是无限的,即随时想加一个人都能找到人。同时衣服颜色也是任意的。输入格式第一行是一个整数n(1<=n<=3000)。第二行是n个整数,从左到右分别表示现有的每个队员衣服的颜色号,都是1到3000的整数。输出格式一个数,即对于输入队列,要调整得符合要求,最少的调整次数。样例输入512243样例输出2设a[i]为第i个人衣服的颜色,F[i,j]为第i到第j个人需要的调整的最少次数,那么F[i,j]=min{1.F[i+1][j-1]+1(且满足a[i]!=a[j],意思是将i或j其一变色来达成匹配)2.F[i+1][j]+1(且满足a[i]!=a[j],意思将第i人删除或者为匹配第i个人多加一人到j后面)3.F[i][j-1]+1(且满足a[i]!=a[j],同上意思将第j人删除或为匹配第j人多加一人到i后面)4.F[i+1][j-1](且满足a[i]=a[j],意为第i人与第j人衣着相同不需调整)}边界是F[i][i]=0;则F[1][n]即为最终答案。(标准程序:hw_2.cpp)(例题2)回文字如果一个单词从前和从后读都是一样的,则称为回文字。如果一个单词不是回文字,则可以把它拆分成若干个回文字。编程求一个给定的字母序列,最少要分割成几部分,使每一部分都为回文字。输入格式:输入文件有且只有一行,包含一个字符串。字符串由小写英文字母组成(a-z),长度不超过100。输出格式:输出文件只一行,为最少的回文字个数。样例1样例2样例3输入anabanabaccbcbanavolimilana输出235样例1说明:(不用输出)#1a_naban#2aba_cc_bcb#3ana_v_o_limil_ana设f[i,j]为第i个字母到第j个字母中的最少的回文字个数,s[i][j]为母串中第i到第j子串,当s[i][j]为回文字时,f[i][j]=1;否则f[i][j]=min(f[i][k]+f[k+1][j]);最后f[1][n]即为答案。(标准程序:hw_3.cpp)(例题3)回文词(FromIOI2000)回文词是一种对称的字符串——也就是说,一个回文词,从左到右读和从右到左读得到的结果是一样的。任意给定一个字符串,通过插入若干字符,都可以变成一个回文词。你的任务是写一个程序,求出将给定字符串变成回文词所需插入的最少字符数。比如字符...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?