树状数组
林木森.
这个作者很懒,什么都没留下…
展开
-
树状数组+二分查询第K大(经典应用)
题目链接 按题意每一次查询和最大的p个数的最小字典序中第q个位置的数字; 首先我们可以把所有数字的按从大到小进行一级排序,位置按从前往后进行二级排序,那么在排序以后p个数的最大和且最小字典序就是前p个数,那么我只要输出前面按照位置从小到大的第q个数就行了。 显然,问题转化后就是求前p个数中的第q大值; 树状数组维护数字x是第几大,然后在有单调性的情况下选择二分第q大值就好了。 #include&l...原创 2020-02-02 22:04:37 · 488 阅读 · 0 评论 -
2019杭电多校第二场6009(树状数组)
题面在这里 题意是在前m个数中删去m-1中的一些数字总和小于给定值,问最少删除多少个数字。 很容易想到每一次删除前m-1个数中最大的数字直到之和小于给定值就是答案,这个方法虽然可行但是明显是个暴力复杂度太高,那么换个思路每一次加上前面的最小值,这里还是比较大,那么离散化以后使用树状数组呢?考虑到树状数组的单调性,每一次二分一个数字n去树状数组求和表示前n小的数字之和直到和为给定值的小于等于的第一个...原创 2019-08-21 20:01:53 · 205 阅读 · 0 评论