——线段树
FeBr2
(๑•̀ㅂ•́)و✧
展开
-
线段树(区间最大值查询和点修改)——I Hate It ( HDU 1754 )
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1754 分析&&题解:直接套模板即可,需要注意的是得用C输入。(T^T,C++输入直接T超3000,C输入瞬间800+,非人哉) 1.线段树标准预处理:#define lc (d<<1) #define rc (d<<1|1) #define mid ( l+r >>1)2.建树:const int原创 2016-07-23 14:23:08 · 414 阅读 · 0 评论 -
线段树(区间更新与区间查询)——Just a Hook ( HDU 1698 )
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1698 分析&题解:不多说,这类水题都放模板 1.线段树标准预处理:#define lc (d<<1) #define rc (d<<1|1) #define mid ( l+r >>1) //l,r表示整个区间范围2.建树:#define Max 100005int a[Max];struct Tr原创 2016-07-23 14:57:27 · 392 阅读 · 0 评论 -
并查集——Destroying Array(Intel Code Challenge Elimination Round C)
题目链接: http://codeforces.com/contest/722/problem/C 分析: 给出一个数组,n个元素,给出一个删除顺序,包含n个数字,不重复,且范围在[1, n],求每一步删除后,输出分开的每一段数组里和最大的。 题解: 一开始想用线段树,但无奈数据结构学得不好,所以又想了一会,感觉把删除操作去掉有点并查集的味道,然后开始并查集胡搞。教训: 本来可以比赛时间AC原创 2016-10-02 01:11:37 · 413 阅读 · 0 评论 -
树状数组 or 归并树 —— HDU 4417
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4417 题意:给出一个数组,每次查询区间 [li,ri][l_i,r_i] 内大于等于 hih_i 的数的个数 分析: 解法1:我们可以离线所有查询,然后把查询按照 hih_i从小到大排序,并且把原来的数组也从小到大排序,从第一个元素开始,判断是否满足当前查询的条件,满足在树状数组中给对应元素的原来位置赋原创 2017-04-29 12:45:24 · 434 阅读 · 0 评论