题目大意是给定1e5个的数列问你只能改一个数,使得他变成任意的数。之后数列中最长升序列的长度是多少?
我上来觉得是dp,但是没有想清楚后来又尺取,发现要更改的数可能是小于前一个或者大于前一个情况较多于是看了看题解发现确实是dp不过没想到处理两次
做法是正着处理当前数从左边延申的最长上升,倒着处理当前数从右边延申的最长上升。枚举每一个数看他能否更改使得数列连续。
如果能就用左边的加上当前加上右边的
否则就取出左边的或者右边的最长的+1这里是直接把这个数能更改用上
1 |
|
题目大意是给定1e5个的数列问你只能改一个数,使得他变成任意的数。之后数列中最长升序列的长度是多少?
我上来觉得是dp,但是没有想清楚后来又尺取,发现要更改的数可能是小于前一个或者大于前一个情况较多于是看了看题解发现确实是dp不过没想到处理两次
做法是正着处理当前数从左边延申的最长上升,倒着处理当前数从右边延申的最长上升。枚举每一个数看他能否更改使得数列连续。
如果能就用左边的加上当前加上右边的
否则就取出左边的或者右边的最长的+1这里是直接把这个数能更改用上
1 | #include <iostream> |
微信支付
支付宝
Baccano by baccano is licensed under a Creative Commons BY-NC-ND 4.0 International License.
由baccano创作并维护的Baccano博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。
本文首发于baccano 博客( http://baccano.fun ),版权所有,侵权必究。
可以使用鼠标点击琴键也可以使用主键盘1-7或者小键盘的1-7来操作