06 2020 档案

摘要:Description 思路 看了cf的题解,没想到这么的简单巧妙,tql 如果一个棋子在(x, y),那么它到k列的最小纵坐标i = y + abs(x - k)。所以就可以统计第k列的每一行有将多少枚棋子。 假设有r×m的棋盘,设f(j)为第k列、第j行及以上(j<=r)将有多少枚棋子。那么棋盘 阅读全文
posted @ 2020-06-28 19:02 limil 阅读(430) 评论(0) 推荐(0)
摘要:Description 这是一道模板题。 您需要写一种数据结构(可参考题目标题),来维护一个序列,其中需要提供以下操作: 翻转一个区间,例如原有序序列是 5 4 3 2 1,翻转区间是 [2,4] 的话,结果是 5 2 3 4 1。 思路 这题体现了无旋treap的区间操作。 注意不能按照关键值来排 阅读全文
posted @ 2020-06-27 13:23 limil 阅读(126) 评论(0) 推荐(0)
摘要:Description 这是一道模板题。 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 插入 x 数; 删除 x 数(若有多个相同的数,因只删除一个); 查询 x 数的排名(若有多个相同的数,因输出最小的排名); 查询排名为 x 的数; 求 x 的前趋(前趋定义为小于 阅读全文
posted @ 2020-06-27 13:12 limil 阅读(164) 评论(0) 推荐(0)
摘要:介绍 treap是tree和heap的组合词,说明这种数据结构有树的特点又有堆的特点。本质是一颗二叉搜索树。 treap的结点除了key关键字外还有个priority关键字。treap除了要保证key满足二叉搜索树性质,还要保证当前priority大于等于两个子节点的priority(即堆的性质)。 阅读全文
posted @ 2020-06-27 13:05 limil 阅读(207) 评论(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 阅读(417) 评论(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 阅读(547) 评论(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 阅读(133) 评论(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 阅读(146) 评论(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 阅读(222) 评论(0) 推荐(1)
摘要:本随机用于记录做题中遇到的坑等等。 21.8.9 set, map等stl使用[]运算符时,如果查询的关键字不存在,会自动插入关键字,导致大小会发生变化,容易导致bug。安全使用请用get()。 注意代码空间局部性 20.7.16 倍增格式化不够。后缀数组倍增要用两倍空间,每次排序一次的格式化只格式 阅读全文
posted @ 2020-06-14 00:36 limil 阅读(71) 评论(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 阅读(102) 评论(0) 推荐(0)
摘要:介绍 数位dp一般用于解决区间[L, R]的计数问题。这里的L, R一般非常大。 数位dp基本上是通过求[1, R]之间的满足条件的数。用[1, R] 减去 [1, L]就是区间[L, R]的结果。 正如其名,数位dp就是在数的每个数位上dp,寻找当前位到下一位之间的状态转移关系。 从一道例题开始 阅读全文
posted @ 2020-06-04 11:01 limil 阅读(106) 评论(0) 推荐(0)
摘要:Description 题目大意是,船要从(x1, y1)行驶到(x2, y2),船可以上下左右行驶或呆在原位不动。同时还有风的影响,船的移动和风的影响可以叠加。问船行驶到终点的最少时间的多少? 思路 由于只要每次行驶和风相反的方向,就至少可以保证保持原位不动。所以船要么可以更靠近终点,要么保持不动 阅读全文
posted @ 2020-06-04 10:36 limil 阅读(104) 评论(0) 推荐(0)
摘要:Description 题目大意是,一个魔法宝石可以分裂成M个普通宝石。你有若干个魔法宝石,问你生成N个宝石(包括魔法和普通宝石)的有多少种情况。 思路 设f[N]为生成N个宝石的方案数,它可以来自N-1个宝石加一个魔法宝石,或N-M个宝石加M个普通宝石(由一个魔法宝石分裂而来)。 所以可以得到递推 阅读全文
posted @ 2020-06-04 09:37 limil 阅读(149) 评论(0) 推荐(0)