首页
比赛
题库
课程
竞赛讨论区
登录
/
注册
去牛客
首页
>
k小数查询
4条解析
开通博客写题解
SAXYAM
发表于 2021-08-21 09:17:31
B题让我们计算满足 x是区间第K小数的区间个数,就是找有k-1个数小于X的区间。由于区间必定包含X,我们从X开始向左右拓展,计算一下向左/右拓展m个数时对k-1的贡献,存入map计算数量,然后合并左右区间(乘法原理)。答案加上L[d]*R[k-1-d]。别忘记左右单独拓展的贡献,最后特判一下k=1的
展开全文
Capture_
发表于 2022-03-15 20:08:31
前缀和求区间 题意:求x是区间第K小数的区间个数,就是找有k-1个数小于X的区间。 我们可以把小于等于x的值的位置由1代替,而大于x的值的位置为0.这样就变成一个 01 序列。 1 :小于等于x 0 : 大于x 我们设 a[] 为一个前缀和数组,那么我们只需要找到 (区间里1的数量 == k &
展开全文
💭💡🎈dear-john
发表于 2021-08-20 23:34:24
B题我们可以预先处理出所有小于 x 的值,给当前位置 pre[i] 加上 1 ,然后处理出前缀和,可以通过前缀和的差值知道每个区间的小于 x 的值的数量,对于 i 位置的pre[i] 一定需要一个pre[i] + k - 1 才能保证该区间的 < x 的数量刚好为k - 1,可以通过二分查找到
展开全文
zzdfw
发表于 2021-08-21 12:11:57
B题https://ac.nowcoder.com/acm/contest/11177/B提供一个我觉得比较清晰的思路,只需要预处理出x两边有多少个数比它小,最后遍历一遍二分查询就行了。 直接拿样例举例:5 3 21 2 3 4 5d[3]=x。我们可以预处理出:l[]={2,1,0,0,0};表示
展开全文
查看本题
查看本题讨论
相关比赛
11177-牛客练习赛87
进入比赛
18712-牛客练习赛87内测
进入比赛
68608-NYNU第二次选拔赛
进入比赛
107633-省赛筛选赛
进入比赛
107839-大一内部赛4.13
进入比赛
等你来战
查看全部
牛客练习赛141
报名截止时间:2025-06-20 21:30
第十二届成都信息工程大学ACM程序设计竞赛同步赛
报名截止时间:2025-06-22 15:00
牛客周赛 Round 97
报名截止时间:2025-06-22 21:00
第五届上海理工大学程序设计全国挑战赛
报名截止时间:2025-06-28 17:30
2025牛客暑期多校训练营1
报名截止时间:2025-07-15 17:00
2025牛客暑期多校训练营2
报名截止时间:2025-07-17 17:00
扫描二维码,关注牛客
意见反馈
下载牛客APP,随时随地刷题