
线段树
chaojidage
我只是想多赚点币子,然后好下资源。
展开
-
hdu1698 dota的蒸汽机器人
就是给你他的钩子长度,一开始是1,后来钩子可以改变,然后改变钩子,看能成为啥样。 运用lazy-tag思想,就是区间更新。就是感觉如果要更新的区间刚好就是这个节点的左右边界不用更新下面的每个点,把该节点的sum更新就可以了#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace st原创 2016-08-16 09:25:46 · 373 阅读 · 0 评论 -
re:hdu1166敌兵布阵
这一阵就做kuangbin带你飞了,希望kuangbin大神不在身边也能带我飞~~~ 敌兵布阵Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 18473 Accepted Submission(s): 8034Problem De原创 2016-10-20 22:19:04 · 241 阅读 · 0 评论 -
结束专题训练hdu1255
kuangbin大神的专题暂时不刷了,安神回来告诉我一个方法叫版切,就是cf的题,确定一个区间人的题,然后一个一个刷,不拉,我做的那个区间并,就是有老有陈的题,然后就很难,很少,没人考,而且不是我的水平可以做的,安神说从一个3年final级选手取经的,在此最后,kbf的最后区间并,写出来了,但是bug找不出,。。。gg还是贴一个kuangbin的吧,不找了,就是个模板题。/*HDU 1255 覆盖原创 2016-10-24 22:12:32 · 211 阅读 · 0 评论 -
hdu1542矩形面积并
这个就是求矩形面积并,思考查阅了一晚上,终于会了这道题,好难,脑洞极大,不禁感叹kuangbin大神的能力,实在是太强了,真的,就用他的做模板,以后就不用什么对拍了。 这个题,这么回事,首先给离散化,把不相邻的点给变成1,2,3,4,5,6,按大小顺序来,还有就是,每一个矩形,加进来的时候,看cnt为多少,入边为1,出边为-1,这样的话,每一个矩形,就记住和y轴平行的边,记录,low和high,还原创 2016-10-24 11:41:46 · 206 阅读 · 0 评论 -
hdu4027
Can you answer these queries?Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65768/65768 K (Java/Others) Total Submission(s): 4570 Accepted Submission(s): 1087Problem Description A lot of原创 2016-10-23 15:33:29 · 412 阅读 · 0 评论 -
RE:HDU 1698 Just a Hook(区间更新)
Just a HookTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 9258 Accepted Submission(s): 4510Problem Description In the game of DotA, Pudge’原创 2016-10-22 20:28:44 · 193 阅读 · 0 评论 -
文章标题
B - I Hate ItHDU 1754 Description 很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。 这让很多学生很反感。 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。 Input 本题目包含多组测试,请处理到文件结束。 在每个测试的第一行,有两个正整数原创 2016-10-22 18:29:11 · 168 阅读 · 0 评论 -
poj2528线段树+离散化
贴海报,问你最后没有被完全覆盖的海报有几个? 这个题是我假期时候做的,当时没找到靠谱题解,自己也不会敲,感谢kuangbin大神好几年前发的题解,终于彻底想通了这道题。 首先,因为数字很大,需要离散化离散化 的大概思路 : 比如说给你一组 数据 1 4 1000 100000, 如果直接 开线段, 显然是浪费, 那么我们只要 进行 映射 :原创 2016-10-22 15:12:50 · 211 阅读 · 0 评论 -
hdu1754我讨厌他(线段树,区间最大值)
这个就是和那个之前做的区间最大和是一样的。就是那个敌兵布阵的那个sum改成区间最大值,更新的时候不要忘了用max。就是这样婶儿。原创 2016-08-13 16:07:41 · 231 阅读 · 0 评论 -
hdu1166敌兵布阵
模板题,真的,有个好的模板非常的重要,真的很有用的。这个东西。这是线段树,用树状数组也可以做的原创 2016-08-13 15:03:41 · 277 阅读 · 0 评论 -
HYSBZ 4551树
那个就是,一开始要dfs一遍,把那个给每个点的深度,要记录一下,然后就是来像普通的线段树一样建树,更新,查找,就这样就行了。这会写的是左闭右开。#include<cstdio>#include<algorithm>#include<cstring>using namespace std;typedef long long LL;const int MaxN = 1e5;int n , m原创 2016-09-04 11:28:20 · 218 阅读 · 0 评论 -
hdu1394线段树求逆序数
这个吧,就是这么回事。你把每一个数都插在相应的点上。然后,query来计算a[i]道n的插得点个数,因为你是按顺序插得。先插的而且还在后面。那么一定构成逆序数。然后用sum保存一下。 还有逆序数的计算第一个数放到最后,比他小的有x-1个,比他大的有n-x个。然后给移到后面,逆序数增加n - x -个,比x小的逆序数均减去1.所以逆序数为n - 2 * x - 1个。#include<cstdio>原创 2016-08-18 10:47:33 · 262 阅读 · 0 评论 -
poj2777线段树+涂色问题
这个吧,很经典,线段树真的很难debug,很长的。这道题主要是用到了二进制位运算的方法。我现在感觉计算机才发明了这么几年,就这么厉害。真的感觉自己好菜好菜。debug都用了这么久。诶。。。。。#include<cstdio>#include<cstring>using namespace std;const int MaxN = 100010;struct tree{ int l ,原创 2016-08-18 09:20:24 · 428 阅读 · 0 评论 -
hdu6070 线段树+二分
题意给你一个区间,让你找,区间种类数/区间长度最小是多少。 思路先公式化简 size/(R - L + 1) <= mid –> size + (L - 1)mid <= R * mid;(mid是二分的值) 对于每一个元素a[i],他能影响的区间是,last[a[i]] + 1 , 到i(last表示这个这个元素上一次出现的位置),他能让这个区间的种类数+1,由于我们需要快速的找到上面原创 2017-08-04 16:51:57 · 247 阅读 · 1 评论