摘要: 题目链接 吐槽 这道题调了7个小时也是够了。最后只好比着题解做了一遍2333 思路 首先考虑n=2000的情况。因为这是在一条路径上,所以可以考虑差分。用a[i][j]表示第i个点中j这种粮食出现的次数。加入要在从x到y的路径上加入c这种粮食。将这条路径分为两部分进行差分。从x到lca,也就是将a[ 阅读全文
posted @ 2018-12-10 21:38 wxyww 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 前置知识 权值线段树&动态开点线段树 适用范围 有时候我们需要对权值线段树进行合并操作。然后就用到了线段树合并。一般是有很多棵线段树,然后需要将其中的两棵合并起来。 方法 其实方法很简单呢。就是分三种情况讨论一下。假设现在要将线段树a和线段树b合并。并且a成为合并之后的线段树。 如果a有当前子树,而 阅读全文
posted @ 2018-12-10 21:28 wxyww 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目大意 有一个矩阵,总共有4种操作 0:清空这个矩阵 1 x y c:将$(x,y)(1 \leq x ,y\leq 10^6)$这个点加上一种颜色c$(0\leq c \leq 50)$(注意是加上,也就是之前的颜色不会被覆盖) 2 x y1 y2:查询左上角为$(1,y1)$,右下角 阅读全文
posted @ 2018-12-10 11:49 wxyww 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 权值线段树 所谓权值线段树,就是指线段树内存的是权值。~~好像是废话~~。给出一些数,要查询一个区间内的数的个数。这时可以用权值线段树,开个n(n为给出的数的最大值)个点的线段树。然后就能轻松的维护了~~当然树状数组更简单~~ 动态开点 为什么要动态开点呢?当然是因为空间不够啊。比如还是上面那个例子 阅读全文
posted @ 2018-12-10 11:33 wxyww 阅读(998) 评论(0) 推荐(1) 编辑
摘要: 题目链接 思路 数学题 首先列出等差数列求和的式子。 $$S = \frac{(n + m)(n m + 1)}{2}(n为末项,m为首项)$$ $$S 2= (n + m)(n m + 1)$$ 若想让m更小,那么肯定要让等差数列中数字的数目更多。也就是让$(n m + 1)$更大,而$(n m 阅读全文
posted @ 2018-12-10 08:57 wxyww 阅读(218) 评论(0) 推荐(0) 编辑