始终觉得秋叶拓哉书上那段代码,没有起到离散化的作用啊?估计是我智障吧。。。肯定是。
compress 后的 X,Y 坐标绘制的 field 和原来的地图一样啊。
import pprint
def compress( li1, li2, size, nums ):
vec = []
vec1 = []
for i in xrange( nums )...
分类:
其他好文 时间:
2014-11-19 18:46:38
阅读次数:
224
题意:
给出一些边平行于坐标轴的长方体,这些长方体可能相交,也可能相互嵌套,这些长方体形成了一个雕塑,求这个雕塑的总体积和表面积。
题解:
最容易想到直接进行bfs或者dfs统计,但此题的麻烦之处在于求整个雕塑的外表面积和雕塑内部可能出现四个长方体所搭成的空心,空心不能计算到表面积中,但是计算总体积却要计入,于是直接bfs或者dfs不好处理,于是,可以想到直接统计整个雕塑外围的所有小方块,即...
分类:
其他好文 时间:
2014-11-19 18:45:56
阅读次数:
269
题目大意:给定一个序列,求一个区间内有多少个不同的数
正解是树状数组 将所有区间按照左端点排序 然后每次只统计左端点开始的每种颜色的第一个数就行了 用树状数组维护
我写的是莫队算法 莫队明显能搞 m√m明显慢了点但是还是能接受的一个复杂度
一开始离散化数组开小了各种秒RE…… 跪了
#include
#include
#include
#include
#include
#define M...
分类:
编程语言 时间:
2014-11-19 16:04:30
阅读次数:
240
这个题目不错,但是一开始算数的时候竟然少算了一种情况导致,思路上跑偏了啊。
题目大意:给你n,m。m代表的是你有m中bus,每种bus只能从si走到ti,问你从0点到达n点可以有多少种方案可以选择。注意人只能坐车不可以走。
对于点ti来说,所有的方案就是前面的si到ti-1方案的和。这样就很简单了啊,但是数据很大需要离散化之后用线段树去维护这个区间的更新,就是需要求前面的和。
对于线段树竟然...
分类:
其他好文 时间:
2014-11-19 11:08:55
阅读次数:
409
权值分块,离散化非常蛋疼,只能离散化搞……需要支持操作:删除 2 #include 3 #include 4 #include 5 using namespace std; 6 #define N 201001 7 struct Point{int v,p;}tmp[N]; 8 boo...
分类:
其他好文 时间:
2014-11-19 10:25:51
阅读次数:
227
这个题目不错,但是一开始算数的时候竟然少算了一种情况导致,思路上跑偏了啊。
题目大意:给你n,m。m代表的是你有m中bus,每种bus只能从si走到ti,问你从0点到达n点可以有多少种方案可以选择。注意人只能坐车不可以走。
对于点ti来说,所有的方案就是前面的si到ti-1方案的和。这样就很简单了啊,但是数据很大需要离散化之后用线段树去维护这个区间的更新,就是需要求前面的和。
对于线段树竟然...
分类:
其他好文 时间:
2014-11-19 00:57:56
阅读次数:
262
题目链接:hdu 4456 Crowd
题目大意:给定N,然后M次操作
1 x y z:在x,y的位置加z2 x y z:询问与x,y曼哈顿距离小于z的点值和。
解题思路:将矩阵旋转45度,然后询问就等于是询问一个矩形,可以用容斥定理搞,维护用二维树状数组,但是空间开
不下,直接用离散化,将有用到的点处理出来。
#include
#include
#include
...
分类:
编程语言 时间:
2014-11-18 00:28:03
阅读次数:
239
给出N个点(x,y),每个点有一个高度h
给出M次询问,问在(x,y)范围内第k小的高度是多少,没有输出-1 (k
线段树扫描线
首先离散化Y坐标,以Y坐标建立线段树
对所有的点和询问进行离线操作,将询问和点按照x,y的大小排序,从左向右,从下向上,对于相同的(x,y)插入点在询问点之前
线段树的每个节点维护10个高度,每次询问[0,mark[i].y]的第mark[i].h高的...
分类:
其他好文 时间:
2014-11-17 17:48:26
阅读次数:
266
离散化,分块。预处理出:ans[i][j] 第i块到第j块的逆序对数。f[i][j] 第1~i块中大于j的数的个数。g[i][j] 第1~j块中小于j的数的个数。每次询问时对于整块部分可以O(1)获得。对于零散部分呢?>在一列数的后面添加一个数,逆序对数会增加 数列中比它大的数的个数。>在一列数的前...
分类:
编程语言 时间:
2014-11-16 18:34:43
阅读次数:
346
权值分块和权值线段树的思想一致,离散化之后可以代替平衡树的部分功能。部分操作的时间复杂度:插入删除全局排名全局K大前驱后继全局最值O(1)O(1)O(sqrt(n))O(sqrt(n))O(sqrt(n))O(sqrt(n))O(sqrt(n))当然,因为要离散化,所以只能离线。代码很短,很快,比我...
分类:
其他好文 时间:
2014-11-14 17:15:30
阅读次数:
243