摘要: 介绍 treap是tree和heap的组合词,说明这种数据结构有树的特点又有堆的特点。本质是一颗二叉搜索树。 treap的结点除了key关键字外还有个priority关键字。treap除了要保证key满足二叉搜索树性质,还要保证当前priority大于等于两个子节点的priority(即堆的性质)。 阅读全文
posted @ 2020-06-27 13:05 limil 阅读(190) 评论(0) 推荐(0) 编辑
摘要: Description 思路 如果我们知道某一个站$b_i$到对$a_i$的贡献是多少,那么就可以用贪心求解(因为这样我们就知道$b_i$对$a_{i+1}$的贡献,从而知道$b_{i+1}$对$a_{i+1}$...)。所以可以考虑二分$b_i$对$a_i$的贡献。 可以把$b_i$对$a_i$的 阅读全文
posted @ 2020-06-26 22:47 limil 阅读(396) 评论(0) 推荐(0) 编辑
摘要: Description 题目大意: $f(x)$为十进制下x每一位上的数字的和。求满足$f(x)+f(x+1)+...+f(x+k)=n$的最小x。 思路 由于k特别小(<=9),故x+k至多发生一次进位。x每加1,必有某一位加上1。如果发生进位,那么$f(x)$只要额外减去若干个9(进位发生后9变 阅读全文
posted @ 2020-06-26 22:27 limil 阅读(523) 评论(0) 推荐(2) 编辑
摘要: Description 题目大意: 高效计算函数H(n)的值。 long long H( int n ) { long long res = 0; for( int i = 1; i <= n; i++ ) res = res + n / i; return res; } 思路 有个叫做数论分块的东 阅读全文
posted @ 2020-06-19 00:18 limil 阅读(113) 评论(0) 推荐(0) 编辑
摘要: Description 题目大意:就是求$\sum_{i=1}{n}{\sum_{j=i}{n}{[lcm(i, j) == n]}}$的结果。 思路 网上有篇博客对这题解释得非常好,记录一下。 看到这个式子,就想到应该和n的因子有关。 这里有一个结论 假设 \(n = p_1^{k_1} \cdo 阅读全文
posted @ 2020-06-18 23:50 limil 阅读(112) 评论(0) 推荐(0) 编辑
摘要: Description 要求你实现一个画板支持以下操作: 0 清空画板 1 x y c 在位置(x, y)添加颜色c 2 x y1 y2 求矩形区域(1, y1)到(x, y2)不同颜色的个数。 3 结束 \((1≤x,y,y1,y2≤10^6,0≤c≤50)\) 思路 每种颜色一棵线段树,搞51棵 阅读全文
posted @ 2020-06-14 01:00 limil 阅读(187) 评论(0) 推荐(1) 编辑
摘要: 本随机用于记录做题中遇到的坑等等。 21.8.9 set, map等stl使用[]运算符时,如果查询的关键字不存在,会自动插入关键字,导致大小会发生变化,容易导致bug。安全使用请用get()。 注意代码空间局部性 20.7.16 倍增格式化不够。后缀数组倍增要用两倍空间,每次排序一次的格式化只格式 阅读全文
posted @ 2020-06-14 00:36 limil 阅读(61) 评论(0) 推荐(0) 编辑
摘要: Description 题目大意是求一数列${a_i}\(中有多少区间\)[l, r]$满足$max(a_l,a_{l+1},…,a_r)−(r−l+1)≤k$,且$a_l,a_{l+1},…,a_r$各不相同。 思路 一开始的想法是计算每个点的贡献。例如$a_i$为最大值时,先预处理出它覆盖的最大 阅读全文
posted @ 2020-06-14 00:28 limil 阅读(79) 评论(0) 推荐(0) 编辑
摘要: Description 题目大意是,船要从(x1, y1)行驶到(x2, y2),船可以上下左右行驶或呆在原位不动。同时还有风的影响,船的移动和风的影响可以叠加。问船行驶到终点的最少时间的多少? 思路 由于只要每次行驶和风相反的方向,就至少可以保证保持原位不动。所以船要么可以更靠近终点,要么保持不动 阅读全文
posted @ 2020-06-04 10:36 limil 阅读(83) 评论(0) 推荐(0) 编辑
摘要: Description 题目大意是,一个魔法宝石可以分裂成M个普通宝石。你有若干个魔法宝石,问你生成N个宝石(包括魔法和普通宝石)的有多少种情况。 思路 设f[N]为生成N个宝石的方案数,它可以来自N-1个宝石加一个魔法宝石,或N-M个宝石加M个普通宝石(由一个魔法宝石分裂而来)。 所以可以得到递推 阅读全文
posted @ 2020-06-04 09:37 limil 阅读(115) 评论(0) 推荐(0) 编辑