什么叫序列平方可和序列?

1230人阅读
文章转自:/question/index.html#!questionId=1036
如果一个非空的字符串是两个相同的字符串连接而成,则称它为平方的。例如aa是平方的,因为它是两个a连接起来的。abab是平方的因为它是两个ab连接起来的。而aaa和abba就不是平方的字符串。给定一个字符串,你可以从中删去任意多个字符(可以不删),得到的是子序列,问最终结果有多少个不同的平方的字符串。
考虑到最终结果比较大,输出对取余数后的结果。
例如:输入abab,输出3。因为aa,bb,abab是3个不同的平方字符串。
这题的描述稍微有些歧义,有多少个不同的平方字符串所说的这个不同,指的是字符位置的不同,而不是串本身的不同。比如:bbb,输出结果应该是3,也就是说任意删除一个b,都算是一种不同的方案。
对于这题我的方法是DP + 容斥,一个3次方的DP。大概思路就是枚举每一个字符,作为平方字符串的后半部分的开头。那么前后两段共有多少相同的子序列。DP那部分同lcs(最长公共子串)类似。是个平方的算法。所以整体是个3次方的算法。
需要特殊讲解一下的是如何去掉重复,某些串在枚举过程中可能会被重复计算,这里我用的是容斥的方法。以当前字符串作为后半部分的开头,产生了多少个新的子序列呢?假设当前位置为i + 1,那么DP一下0-i这段和i + 1 - end这段,有多少相同的子序列。但子序列的计算包括了不以i+1为开头的序列。那么再Dp一下0-i和i + 2 - end这段有多少相同的子序列。用前者减去后者,就是以i + 1作为开头的子序列的数量了。
using System.Collections.G
namespace Test
class Program
static int Mod = ;
static long howmany(string str)
str = str.ToLower();
long result = 0;
for (int i = 0; i & str.Length - 1; i++)
result += Cal(str, 0, i, i + 1, str.Length - 1);
result -= Cal(str, 0, i, i + 2, str.Length - 1);
return (result % Mod + Mod) % M
public static long Cal(string str, int s1, int e1, int s2, int e2)
if (e1 & s1 || e2 & s2)
int m = e1 - s1 + 1, n = e2 - s2 + 1;
long[,] matrix = new long[m + 1, n + 1];
for (int i = s1; i &= e1; i++)
int index1 = i - s1 + 1;
for (int j = s2; j &= e2; j++)
int index2 = j - s2 + 1;
if (str[i] == str[j])
matrix[index1, index2] = (matrix[index1 - 1, index2] + matrix[index1, index2 - 1] + 1) % M
matrix[index1, index2] = (matrix[index1 - 1, index2] + matrix[index1, index2 - 1] - matrix[index1 - 1, index2 - 1]) % M
return matrix[m, n];
//start 提示:自动阅卷起始唯一标识,请勿删除或增加。
public static void Main()
Console.WriteLine(howmany(&bbb&));
//end //提示:自动阅卷结束唯一标识,请勿删除或增加。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:2773次
排名:千里之外 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
函数可积绝对可积及平方可积关系的讨论
下载积分:100
内容提示:函数可积绝对可积及平方可积关系的讨论
文档格式:PDF|
浏览次数:107|
上传日期: 23:35:01|
文档星级:
该用户还上传了这些文档
函数可积绝对可积及平方可积关系的讨论
官方公共微信平方序列的规律从1到后面自然数的规律是不是一样的?1 1-0=12 4-1=33 9-4=54 16-9=75 25-16=96 36-25=117 49-36=138 64-49=159 81-64=1710 100-81=1911 121-100=2112 144-121=2313 169-144=2514 196-169=2715 225-196=2916 256-225=3117 289-256=3318 324-289=3519 361-324=3720 400-361=3921 441-400=4122 484-441=4323 529-484=4524 576-529=4725 625-576=4926 676-625=5127 729-676=5328 784-729=5529 841-784=5730 900-841=5931 961-900=6132 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 152 353 554 755 956 157 358 559 760 961 162 363 564 765 966 167 368 569 770 971 172 373 574 775 976 177 378 579 780 981 182 383 584 785 986 187 388 589 790 991 192 393 594 795 996 197 398 599 7不能输更多的例子了,如果要文件加Q(答案:百度知道平方)
是一样的,可以证明:x^2-(x-1)^2=2x-1完毕.
为您推荐:
是一样的a^2-b^2=(a+b)(a-b)=(a+b)是连续的奇数
扫描下载二维码The page is temporarily unavailable
nginx error!
The page you are looking for is temporarily unavailable.
Please try again later.
Website Administrator
Something has triggered an error on your
This is the default error page for
nginx that is distributed with
It is located
/usr/share/nginx/html/50x.html
You should customize this error page for your own
site or edit the error_page directive in
the nginx configuration file
/etc/nginx/nginx.conf.【图文】第一章 离散时间信号 01_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
第一章 离散时间信号 01
上传于||文档简介
&&数​字​信​号​处​理​ ​课​件
大小:860.50KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢}

我要回帖

更多关于 java中什么叫序列化 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信