Codeforces Round #462 (Div. 2), problem: (C) A Twisty Movement
题目意思: 给长度为n(n<=2000)的数字串,数字只能为1或者2,可以将其中一段区间[l,r]翻转,求翻转后的最长非递减子序列长度。第一种:先预处理1的前缀和,以及2的后缀和,每次枚举翻转区间,则答案为左区间的1的前缀和+枚举区间内最长非递增子序列的长度+右区间2的后缀和数目。先固定左端点l,然后枚举右端点,碰到1要统计,碰到2要更新值,假如使用此处的2,则之前区间内的1无法继续使用。复...
原创
2018-02-18 17:30:07 ·
287 阅读 ·
0 评论