
线段树
- Passerby ゛
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
codeforces 1108 E2. Array and Segments (线段树,区间修改)
题意:给你n个数,m个范围,可以选择任意个范围中的数所有都减一,问如何得到最大的 max-min。题目链接简单版本直接暴力枚举每个数分别为最大最小,时间复杂度 nnm;#include<bits/stdc++.h>#define fi first#define se second#define FOR(a) for(int i=0;i<a;i++)#define s...原创 2019-01-25 23:18:46 · 351 阅读 · 0 评论 -
权值线段树理解及模板
权值线段树,顾名思义就是记录权值的线段树,普通的线段树直接以坐标为l,r建树,而权值线段树是以大小来建树,树上寸的信息是该权值的数量,而通过建树时二分从小到大的性质,可以用这个解决一些有序的东西这个视频讲得很好,还有主席树的东西https://www.bilibili.com/video/av16552942/?p=1&share_source=qq&share_medium=...原创 2019-08-07 20:28:39 · 960 阅读 · 0 评论 -
codeforces 777 E. Hanoi Factory(线段树||栈)
http://codeforces.com/contest/777/problem/E题意:有n个圆环,分别有内径r,和外径R和高度h 圆环 x 可以放在圆环 y上 需要满足条件 Rx<=RyRx<=RyRx<=Ry且Rx>ryRx>ryRx>ry,相当于上面的外径比下面外径小并且上面不能掉下去,问最高可以叠多高思路:...原创 2019-08-18 20:00:29 · 492 阅读 · 0 评论 -
主席树(模板)
主席树就是储存了所有权值线段树的历史版本每次修改时只需要修改它改动的部分以节约空间其余操作和权值线段树类似https://blog.youkuaiyun.com/pengwill97/article/details/80920143https://blog.youkuaiyun.com/Stupid_Turtle/article/details/80445998主席树经典问题,区间第K大问题poj2104/...原创 2019-08-08 13:08:45 · 170 阅读 · 0 评论 -
codeforces 877 F. Ann and Books(dfs序维护线段树)
http://codeforces.com/contest/877/problem/F题意:现有一棵树,每个节点上有0或1,现有2种操作1.将子树每个节点值取反2.查询子树节点为1的数量思路:树上问题考虑,dfs序维护线段树,首先让节点储存亮灯的个数,那么每次取反即为区间长度减去亮灯数,每次更新时打上标记,1表示子区间翻转,0表示不翻转,每次x^1即可pushdown操作时,让子区间根据...原创 2019-08-04 22:17:54 · 176 阅读 · 0 评论 -
codeforces 620 E. New Year Tree(dfs序 线段树 状态压缩)
http://codeforces.com/contest/620/problem/E题意:给出一棵树,给个节点有不同的颜色(<60) 现有两种操作1.将x节点的子树的颜色全部变为c2.查询x节点子树有多少种不同的颜色思路:首先dfs序维护线段树,主要难点是如何储存颜色的信息,这里询问的是由多少种不同的颜色,并且这里颜色数量很小,考虑二进制0,1,表示每个颜色,子树的父亲节点对子节点...原创 2019-08-04 22:06:00 · 152 阅读 · 0 评论 -
codeforces 831 E. Cards Sorting(树状数组)
http://codeforces.com/contest/831/problem/E题意:n张牌,牌上数字,每次从牌顶抽取一张牌,如果这张牌是当前的最小值那么就把它扔掉,不然放到牌堆底,问需要多少次操作把牌扔光。思路:考虑一个数据结构可以删除数字,查询当前区间存在的数字,这里可以用线段树或者树状数组。还可以用set瞎搞…这里我用树状数组存下所以数字的下标,并且记录下出现的数字,将其对应的位...原创 2019-08-04 21:55:53 · 221 阅读 · 0 评论 -
codeforces 483 D. Interesting Array(构造,线段树,位运算)
http://codeforces.com/contest/483/problem/D题意:构造一个序列,满足m个:[l,r,c] 的条件。 [l,r,c]表示[l,r]中的元素按位与(&)的和为c思路:区间问题一般考虑用线段树,分块等方法。思路其实都差不多,但是线段树时间复杂度稍微小一点。考虑先满足每一个条件,要满足当前条件直接在该树节点维护的区间或上x,然后打上标记,更新完所有条...原创 2019-08-04 20:47:39 · 187 阅读 · 0 评论 -
codeforces 914 D. Bash and a Tough Math Puzzle(线段树 区间gcd)
http://codeforces.com/problemset/problem/914/D题意:给出一个数组,现有两种操作1.给出l,r,x 询问在l,r区间内至多改变一个数,gcd能否为x2.单点修改元素值思路:考虑线段树维护,最麻烦的是改变一个元素后gcd能否为x,首先线段树维护每个区间的gcd,首先父节点储存的gcd如果能都整除x,那么该区间gcd就可以在改变一个数的情况下为x...原创 2019-08-04 10:14:40 · 166 阅读 · 0 评论 -
1915: 我能做(set维护线段树)
duxing201606毕业后子承父业继承了一家公司。在公司中,除了duxing201606以外的员工都有一个上司。如果X是Y的上司,Y是Z的上司,那么Y和Z都是X的下属。duxing201606会经常分配任务给员工,duxing201606非常喜欢团队去完成任务,所以每次duxing201606给X分配任务的时候,会同时给X的所有下属都分配这个任务,该任务的编号为X。duxing201606...原创 2019-04-27 22:56:31 · 240 阅读 · 0 评论 -
zstu月赛 1912: 我好像不会做 (欧拉函数+线段树)
题目描述众所周知,duxing201606得到了某知名数学家的真传,现在她有了无穷的力量.现在她面前有一个数组a,duxing201606打算施法,有两种魔法, 第一种:把[l,r]区间的每个数变成它的f函数,即a[i]=f(a[i]). 第二种:查询区间[l,r]中a[i]的和. f(x)是1到x中与x互质的数的个数。f(1)=1.输入多组数据,请读到文件末尾.一个数n表...原创 2019-04-26 22:10:57 · 197 阅读 · 0 评论 -
POJ3468线段树(区间求和,区间修改,lazy标记)
线段树模板建树 push_up更新 如果该点lazy标记push_down 更新完push_up查询 如果lazy标记push_down//#include<bits/stdc++.h>#include<cstdio>#include<iostream>#include<cstring>#include<cstdlib>...原创 2019-01-21 15:13:26 · 284 阅读 · 0 评论 -
codeforces 1070(差分||权值线段树)
https://codeforces.com/contest/1070/problem/C题意:有mmm种借用云计算内核的方案,第i种方案li ri ci pili \ ri\ ci\ pili ri ci pi表示,表示这种方案的可借用时间是从第li 到 ri 天,数量有 ci价格 为pi。公司在1~n 天内如果能租到k件及以上,选...原创 2019-08-07 20:55:42 · 414 阅读 · 0 评论