数据结构-线段树
leoxry
天道酬勤,拼搏一个最好的自己送给未来的自己,每天开开心心敲代码就是一种幸福,不计得失,回归刚开始学习时内心的单纯
展开
-
线段树—效率至上
think: 1今天上午用了一个半小时完成了这个题目,这是自己做的第二个线段树的题目,因为一些自身的原因导致内心不断波动,无法投入高效率的学习状态,希望自己以后争取考虑事情全面一点,做一个有原则的懂礼貌的人,而不是盲目冲动,不要因为别的事情影响到自己的学习生活,学会把生活与学习作为两个独立的生命部分来对待,知错就改吧,自己的错误该道歉的就道歉,不要因为生活上的事情影响学习。现在回归正题,这个题目直原创 2017-02-13 10:14:48 · 607 阅读 · 0 评论 -
C - A Simple Problem with Integers ——线段树_区间更新
Think: 1知识点:线段树-区间更新-区间查询-lazy标记 2题意分析:区间更新+区间查询 3反思: 1>单点更新会超时 2>lazy标记区间更新ACvjudge题目链接以下为Time Limit Exceeded代码#include <cstdio>#include <cstring>#include <algorithm>using namespace std;typedef原创 2017-08-03 10:51:32 · 283 阅读 · 0 评论 -
E - Just a Hook HDU - 1698——线段树区间更新+lazy标记
Think: 1知识点:线段树区间更新+lazy标记 2题意:在n个初始化点权为1的点的基础上进行区间更新,询问最终状态n个点的点权之和 3反思:当前题目lazy标记赋值更新vjudge题目链接以下为Wrong Answer代码——lazy标记更新错误#include <cstdio>#include <cstring>#include <algorithm>using namespace原创 2017-08-10 11:02:14 · 387 阅读 · 0 评论 -
【线段树+dfs序】J - Assign the task HDU - 3974
Think: 1知识点:线段树+dfs序 2题意:输入一棵关系树,两种操作,C操作(查询结点x正在进行的工作(初始工作默认为-1)),T操作(结点x及其下属开始进行y工作) 3思路:通过dfs序将其转化为可以建为线段树的映射结点,进而进行线段树的查询和更新操作即可。(用每个节点的所包含的子节点段来当做线段树的节点,查找每个节点所包含的段可以用简单的DFS实现) 4反思:lazy标记没有很好理原创 2017-08-17 10:51:21 · 451 阅读 · 0 评论 -
【线段树区间更新】Count the Colors ZOJ - 1610
Think: 1知识点:线段树区间更新 2题意:一条长度为8000的布条,每次输入xi, yi, ci, 表示将区间[xi, yi]染色为ci,询问最终状态每个颜色分别染了几段,按照index顺序输入 3反思: 1>左右儿子结点编号不要传入错误 4思考:先将区间[1, 8000]全部初始化为-1, 之后输入xi, yi, ci之后将区间[xi+1, yi]颜色更新为ci, 更新完成后,进行原创 2017-08-15 10:22:39 · 371 阅读 · 0 评论 -
【线段树单点更新优化】H - Can you answer these queries? HDU - 4027
Think: 1知识点:线段树单点更新优化(优化条件(开根后平方数为1的结点不需要再次开根)) 2题意:两种操作:对一个区间所有数取其平方数;对一个区间所有数求和 3反思: 1>注意数据范围 2>注意输入区间是否合法,是否L一定会小于Rvjudge题目链接以下为Time Limit Exceeded代码——未加优化条件#include <cstdio>#include <cstring>原创 2017-08-16 12:05:45 · 328 阅读 · 0 评论 -
【线段树左右衔接区间更新查找问题】I - Tunnel Warfare HDU - 1540
Think: 1知识点:线段树左右区间衔接更新查找问题 2题意:数,线段,三种操作,D操作(删除一个数),R操作(回复前一个删除的数),Q操作(查询一个数所在线段的最大连续线段长度)vjudge题目链接建议参考博客以下为Accepted代码#include <cstdio>#include <cstring>#include <algorithm>#include <stack>using原创 2017-08-16 17:42:48 · 449 阅读 · 0 评论 -
A - Coder HDU - 4288——线段树
Think: 1知识点:预处理得到有序线段树结点对应关系进而逐渐建树 2题意:维护有序集合的插入操作/删除操作/求和操作vjudge题目链接以下为Accepted代码#include <cstdio>#include <cstring>#include <algorithm>using namespace std;typedef long long LL;const int N = 1e5原创 2017-08-07 21:47:16 · 324 阅读 · 0 评论 -
B - I Hate It ——线段树
Think: 1知识点:线段树——区间最值+单点更新 2反思:注意数组不要越界,开四倍即可vjudge题目链接B - I Hate It 很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。这让很多学生很反感。不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。Input 本题目包含原创 2017-08-01 10:30:19 · 359 阅读 · 0 评论 -
敌兵布阵 HDU - 1166——(初级线段树)
Think: 1线段树初级操作:单点更新+区间求和vjudge题目链接以下为Time Limit Exceeded代码——区间求和操作不理解,导致直接确定到点,时间复杂度太大#include <cstdio>#include <cstring>using namespace std;const int N = 2e5 + 4;int sum[N];void Build(int l, int r,原创 2017-06-25 19:39:11 · 318 阅读 · 0 评论 -
线段树—数组计算机
think: 1 下午在学习线段树,感觉内心一直波动起伏,静不下心来,线段树相对于前面的字典树等,感觉更多侧重于解决动态区间问题,比如求和/最大值/最小值等,多思考,多练习。 2 关于数组计算机的题目,自己有疑问就是学哥建议开数组时候开最大值的4倍,???。sdut原题链接数组计算机 Time Limit: 1000MS Memory Limit: 65536KBProblem Descrip原创 2017-02-12 17:52:58 · 469 阅读 · 1 评论 -
D - Mayor's posters——线段树区间覆盖+离散化
Think: 1知识点:线段树区间覆盖+离散化 2题意分析:竞选人需要在墙上贴宣传海报,海报高度相同宽度不一定相同,按照时间轴会出现覆盖,给定按照时间轴海报的起始位置和终止位置,询问在最终状态会展现多少海报,n([1, 10000]),(li, ri)([1, 10000000]),参考前辈博客,因l(ri-li+1)与n差值较大,因此需要离散化 eg1: 离散化前坐标:[1,6] [1.7原创 2017-08-04 10:56:41 · 435 阅读 · 0 评论