首页 > 其他 > 详细

hdu多校题解

时间:2020-07-20 01:12:23      阅读:103      评论:0      收藏:0      [点我收藏+]

hdu2018多校-5

H Hills And Valleys

给定一个长度为 \(n\) 的序列 \(a\) ,你需要翻转一段区间 \([l,r]\)最大化序列的最长不下降子序列。
求出最长不下降子序列长度以及翻转的区间。
数据范围: \(1\le n\le 10^5, 0\le a_i\le 9\)
Solution
枚举 \([x,y]\) 表示翻转区间内产生贡献的数的值域范围,设 \(b = \{ 0...x, y...x, y...9\}\) ,然后跑 \(a\)\(b\)\(LCS\) 即可,这里的 \(b\) 的数可多次被覆盖。
定义 \(dp[i][j]\) 表示 \(a\)\(i\) , \(b\)\(j\)\(LCS\) ,显然有

\[dp[i][j] = max(dp[i - 1][j] + (a[i] == b[j]), dp[i][j - 1]) \]

枚举的过程中顺带维护 翻转区间的两端点 即可。
时间复杂度: \(O(45*12*n)\) ,跑不满。

hdu多校题解

原文:https://www.cnblogs.com/wlzhouzhuan/p/13341777.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!