欢迎光临散文网 会员登陆 & 注册

CF竞赛题目讲解_CF387E(树状数组+set)

2022-08-08 10:14 作者:Clayton_Zhou  | 我要投稿

//https://codeforces.com/problemset/problem/387/E

题意:

已知一个长度为n的数列,每个数在1-n之间且各不相同。你可以从这个数列中删数, 删除规则:

每次选一段连续区间,可以删除这个区间中最小的那个数,然后每次删除得到的分数是这个区间的长度。


题目要你把原序列删成一个规定的长度为k的序列,并要得分最高。


思路:

贪心策略按数据从小到大删,用set来维护b数组,同时二分查找大于当前要删除数据的位置。

假设当前要删的数是3,那么r就是距离3最远的那个数据下标,未删数据,不在set中, (*it)-1

l就是3的前面一个数2的下标+1, 未删数据,不在set中, *(--it)+1

input

3 2

2 1 3

1 3


CF竞赛题目讲解_CF387E(树状数组+set)的评论 (共 条)

分享到微博请遵守国家法律