ACM练级日志:HDU 4288 离散化
来源:互联网 发布:java web高级编程下载 编辑:程序博客网 时间:2024/06/05 02:27
很久没有写线段树,今天看见这道题一开始以为是个平衡树,用set想暴力冲过去,结果失败了…… 但是看discuss里面有个大神居然直接用数组模拟冲过去了,不知道他怎么做到的!
一开始没想到要用线段树,这次也算是长经验了吧,这种散点、有序、还不重复的操作,其实可以离散化以后用线段树表示的,而且这种“每隔5个求和”似乎用平衡树系的数据结构也无力,而线段树天生的求和能力在这儿就体现出来了。
程序写起来并不麻烦,一开始错在两个地方,都是离散化后数组和原数组弄错了,离散化以后,所有操作都在离散化后数组做,没有原数组什么事了。
贴一下离散化去重部分:
sort(&appear[1], &appear[p_appear+1]);//p_appear是不同的数字个数p_appear = unique(appear+1, appear + p_appear +1) - numbers - 1;// unique函数会返回指向第一个重复元素的指针(迭代器)
......
int mirror = lower_bound(appear+1, appear + p_appear +1 , a[i]) - appear; //找到了对应的下标,注意如果后面可能出现appear数组里没有的数,还需要判断:if(appear[mirror] == a[i])
0 0
- ACM练级日志:HDU 4288 离散化
- ACM练级日志:HDU 4274
- ACM练级日志:HDU 4433 Locker
- ACM练级日志:set
- ACM练级日志: POJ 1389
- ACM练级日志: POJ 1376
- ACM练级日志:HDU 4735(ACM 成都网络赛) 重复覆盖与DLX
- ACM练级日志:“不作死就不会死” --HDU 4283 & 4284
- ACM练级日志:HDU 4286 STL-双端队列 以及Presentaion Error
- ACM练级日志: POJ 2155、1151
- ACM练级日志:模板的使用
- ACM练级日志:Treap个人用模板
- ACM练级日志:ACM2013 南京网络赛
- ACM练级日志:可持久化线段树初级-POJ 2104
- 离散化 ---- ACM
- ACM练级
- ACM练级日志:POJ 3740 与Dancing Links
- ACM练级日志:POJ 3074 数独与DLX
- 字典翻转--python
- ACM练级日志:HDU 4274
- 上海Java开发待遇 、上海软件开发待遇、上海项目经理待遇,群硕待遇,爱立信待遇、恒生电子待遇
- JavaScript "filter" and "map"
- android开发环境搭建及问题的解决
- ACM练级日志:HDU 4288 离散化
- hdu-2503-a/b + c/d
- 官方
- UVA - 620Cellular Structure(递推)
- css - div - 文字居中
- jar做成exe文件的几种工具
- global的用法
- Kmeans聚类算法
- 谷歌访问之直接输入ip地址