线段树
sun.strick
这个作者很懒,什么都没留下…
展开
-
矩形覆盖
相信这个世上没有比我写的还要乱七八糟的线段树了。。。 #include #include #include using namespace std; int n; int L,R; const int Ni = 210; struct node { int l,r,h; int s; bool operator < (const node & a) const原创 2016-06-29 22:37:09 · 199 阅读 · 0 评论 -
约瑟夫问题线段树
虽然很弱智,毕竟也是做的第一个疑似权值线段树的东西 #include #include #include using namespace std; const int maxn=100010; int sum[maxn<<2]; void pushup(int idx) { sum[idx]=sum[idx<<1]+sum[idx<<1|1]; } void build(int原创 2016-06-29 22:39:29 · 430 阅读 · 1 评论 -
线段树插队。。题目有点忘了、、
#include #include using namespace std; int a[200005]; int pos[200005]; int tree[600005]; int n,L,R; void build(int node,int tl,int tr) { tree[node]=tr-tl+1; if(tl==tr) return ; int mid=(t原创 2016-06-29 22:40:22 · 218 阅读 · 0 评论 -
线段树插队。。题目有点忘了、、
#include #include using namespace std; int a[200005]; int pos[200005]; int tree[600005]; int n,L,R; void build(int node,int tl,int tr) { tree[node]=tr-tl+1; if(tl==tr) return ; int mid=(t原创 2016-06-29 22:40:45 · 242 阅读 · 0 评论 -
线段树
题意是有一排花。 每朵花要开需要浇pi的水,每天stalin会给一段区间【l,r】浇c的水,给q个询问,每个询问问某朵花开花的时间。 一眼瞄去总感觉是个可持久化之类的乱搞数据结构题。但是看了题解发现只是一个简单的区间加减。只要维护一个区间min就可以知道有没有往这个节点查询的必要。蒟蒻数据结构真的弱啊。区间更改都已经不会写了,惨啊。。。‘ #include #define N 500010转载 2016-11-11 15:10:44 · 266 阅读 · 1 评论 -
dfs序列 的lis
1.改造二叉树 【题目描述】 小Y在学树论时看到了有关二叉树的介绍:在计算机科学中,二叉树是每个结点最多有两个子结点的有序树。通常子结点被称作“左孩子”和“右孩子”。二叉树被用作二叉搜索树和二叉堆。随后他又和他人讨论起了二叉搜索树。 什么是二叉搜索树呢?二叉搜索树首先是一棵二叉树。设key[p]表示结点p上的数值。对于其中的每个结点p,若其存在左孩子lch,则key[p]>key[lch];原创 2016-11-02 16:27:20 · 382 阅读 · 0 评论