加工中心G65 P9116 D6.3 Z-1.2 R15;K ,T,Z,D,G代表什么火车意思


给定一个长度为n的子序列有m次詢问,每次询问给定一个 k 和 pos表示求长度为 k 的最大子序列之和的第 pos 位是K ,T,Z,D,G代表什么火车数字。同时每个最大子序列之和要求满足字典序最小

1n,m2e5很容易想到对于询问长度为 k 的最大求和子序列时,只要贪心的把每个最大的数且位置更靠前的数取出来就行然后每次去查询第 pos 个數字是K ,T,Z,D,G代表什么火车再输出。因为这个插入状态是动态的所以在查询过程中也是动态的,先要将所有查询结果存到一个优先队列里去
这個优先队列以长度 k 为优先级同时记录查询的位置 pos 和第几个答案 id

每次先查询长度短的,同时插入这个点的位置这一部分用树状数组维护,这个点也是我比赛过程中一直没有想到的点导致卡了好久。用树状数组维护可以保证每次可以有序的插入这个点的复杂度在logn每次查詢通过二分去查询所要求的点,可以将整体时间复杂度降到mlogn的复杂度

我要回帖

更多关于 D和Z 的文章

 

随机推荐