思路1:树状数组+离线处理,对所有的w离散化处理,边dfs边使用树状数组更新左右w的情况。思路2:主席树,边bfs边建树。结点信息存储cnt,然后在线查询。树状数组。 1 /* 4605 */ 2 #include <iostream> 3 #include <sstream> 4 #include
分类:
其他好文 时间:
2016-02-15 00:49:43
阅读次数:
228
很明显直接二维是作死的。。所以给按X点排下序,当然离线处理询问时差分的点会方便些。。 对Y坐标就用BIT维护就行。。 但由于坐标比较大,所以还要离散化= = 处理起来略麻烦但代码并不难写 1 //#include<bits/stdc++.h> 2 #include<cstdio> 3 #includ
分类:
其他好文 时间:
2016-02-14 00:26:06
阅读次数:
236
这题的做法有点神奇。。 离线处理。按r排序,记录上个相同的数出现的位置,边加入一个数的同时删去上一个相同的数就好了。。用BIY维护和 BIT写起来挺快的。。
分类:
其他好文 时间:
2016-02-12 22:07:34
阅读次数:
241
3626: [LNOI2014]LCA Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1272 Solved: 451[Submit][Status][Discuss] Description 给出一个n个节点的有根树(编号为0到n-1,根节点为0)。
分类:
其他好文 时间:
2016-02-10 14:19:07
阅读次数:
240
---恢复内容开始---这道题真的是非常恶心,看题解看了半天才弄懂,而且题解上说的相当简略。此题大意是询问去掉重复元素的最大子区间和,没有修改操作。没有修改操作,这样就可以离线处理了。这道题有几个难点:1.怎么表示去掉重复元素的区间和? 有一种简便而且高效的方法,用pos[a[i]]表示a[i]上....
分类:
其他好文 时间:
2015-12-05 22:33:01
阅读次数:
219
题意:给定一个序列,每次询问l到r之间两个数差的绝对值的最小值。分析:开始以为是线段树离线处理,实际暴力就好!#include #include #include #include #include #include #include #include #include #include #incl...
分类:
其他好文 时间:
2015-10-26 00:05:25
阅读次数:
154
比较容易想到的做法是线段树套字典树,修改操作时在字典树上经过的节点维护一个最近被访问过的时间,这样询问操作只经过满足时间条件的节点,时间复杂度O(NlogN^2)但是因为线段树每个节点都要套个字典树,这样的话空间是不够的,不过由于可以离线处理,我们可以先把每个修改和询问操作所访问的线段树节点保存.....
分类:
其他好文 时间:
2015-10-13 00:14:18
阅读次数:
840
题意:n个线段[Li, Ri], m次询问, 每次询问由cnt个点组成,输出包含cnt个点中任意一个点的线段的总数。由于是无修改的,所以我们首先应该往离线上想, 不过我是没想出来。首先反着做,先求不包含这个cnt个点的线段的总数, 那么不包含这些点的线段必然在cnt个点之间(这里需要再加两个点一个是...
分类:
编程语言 时间:
2015-10-08 14:43:56
阅读次数:
216
题意:1000*1000的格子, 坐标为(1, 1) ~ (1000, 1000), 常数 A, B, 点(x, y)权值为 (x + A) * (y + B), q次询问, 每次询问(0, 0) (p, 0), (p, q)的直角三角形内的权值和。作法: 离线处理, 把所有点和询问放到一起, 按斜...
分类:
编程语言 时间:
2015-09-15 14:46:44
阅读次数:
147
题意:给n个节点m条带权值边的无向图。然后q个问题,每次询问点对的数目,点对需要满足的条件是:1)连通;2)其路径的最大权值不能超过询问值。分析:如果没次询问一次,dfs一次,很可能超时,因此可以用并查集。离线处理,把边按权值排序,把问题按大小排序。然后离线的过程就是不断向图中加边的过程。比如样例如...
分类:
其他好文 时间:
2015-09-14 23:59:20
阅读次数:
411