集训队寒假自由练习1解题报告

随便水水,想说说寒假训练里面搞了好久的一题-by 1629210081

N:Match for Bonus

这题真是折磨死了我了交了17遍才过(不算小号的)。

这题就是LCS(最长公共子序列)算法的拓展了。

LCS算法的递归公式就是这样了

字符相同时候 dp[i][j]=dp[i-1][j-1]+1
不同时候 dp[i][j]=MAX(dp[i][j-1],dp[i-1][j])

然后这题不同的是,LSC算法里相同是叠加,也就是每次加1,然后这题要加上其字符代表的价值。

然后就能得出答案是dp[i-1][j-i]。

这题,在ZOJ上这样就可以结束了,可以我们TOJ上较之原题加大了字符串长度。。。就是如果按照题意开dp数组会爆内存。。这折磨了我好久,之后还是问crq才知道要用滚动数组。

然后说滚动数组,这里讲二维滚动数组 这题可以直接将i%2,实现压缩空间的目的。

嗯。。就是这样了。(第一次正式写解题报告,略紧张)


为解题报告打分
暂时不评分

★★
★★★
★★★★
★★★★★
发表您的评论(若贴AC代码或发表禁止言论等违禁行为将被删除并扣除积分)

|返回 |   | 转到页头|
Copyright @ 2008-2024(浙ICP备2022001332号), TZOJ. All Rights Reserved.