随笔分类 -  数据结构

摘要:给定整数 n 和 k,找到 1 到 n 中字典序第 k 小的数字。 注意:1 ≤ k ≤ n ≤ 1e9。 示例 : 输入:n: 13 k: 2 输出:10 解释:字典序的排列是 [1, 10, 11, 12, 13, 2, 3, 4, 5, 6, 7, 8, 9],所以第二小的数字是 10。 来源 阅读全文
posted @ 2021-01-27 19:55 CoffeeCati 阅读(120) 评论(0) 推荐(0)
摘要:【题目链接】 【思路】: 涉及到树上区间修改操作,所以使用树链剖分,涉及到区间查询,所以使用线段树。 update操作时,就正常操作,难点在于query操作的计数。 因为树链剖分的dfs序只能保证一条重链上的dfn[]连续,不能使得任意两点之间简单路径上的dfn[]连续,所以当x往上跳到fa[top 阅读全文
posted @ 2019-07-23 11:02 CoffeeCati 阅读(161) 评论(0) 推荐(0)
摘要:【题目链接】 【思路】: 根据题意可以明显看出,当所有任务都完成时的时间是最终的结果,也就是说本题要求,求出最小的最大值。 那这样的话就暗示了将答案二分,进行check。 【check方法】: 如果说当前答案为ans,每个任务设为p[i],所花费的时间是p[i].tim,所有任务p[i].tim的最 阅读全文
posted @ 2019-07-13 16:48 CoffeeCati 阅读(189) 评论(0) 推荐(0)
摘要:题目大意是找最小的m使得前m段中每一段的最大值相加严格大于k,每一段长度为[n/m](n/m向下取整,多余的后半部分部分n-m*[n/m]不要) 先给一段我一开始的思路,和网上许多题解思路一样,但其实是有错误的。二分答案+RMQ (RMQ部分也可以用线段树) #include <bits/stdc+ 阅读全文
posted @ 2019-05-15 15:23 CoffeeCati 阅读(232) 评论(0) 推荐(0)