
线段树
lixuwei2333
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
A Simple Task【区间排序】【线段树】
题目链接:http://codeforces.com/contest/558/problem/E 题意: 给定一个字符串, m次操作, 每次操作一个区间, 0表示让这个区间降序, 1 表示升序, 问最后字符串的样子。 字符集只有26个,所以线段树维护区间内每个字母的数量,对于排序操作就直接暴力进行区间覆盖。 #include<bits/stdc++.h> #define ...原创 2019-11-01 15:35:11 · 921 阅读 · 0 评论 -
Subpalindromes(nlogn线段树判断回文串,未填坑)
题目链接 未完成代码 #include <bits/stdc++.h> #define ll long long using namespace std; const int N = 101000; int w[N]; int idx[N]; struct node{ int ldata,l,r,rdata,len; node(){len = -1;} }tre...原创 2018-06-21 20:55:25 · 290 阅读 · 0 评论 -
树链刨分模板
单点修改 查询链上点权最大值 下面线段树的实现有很多冗余的东西,主要看两个dfs。 #include<bits/stdc++.h> #define lson (o<<1) #define rson (o<<1|1) #define mid (l+r>>1) #define ll long long #define N 51000 using...原创 2019-01-18 10:02:29 · 204 阅读 · 0 评论 -
查询区间内第一个大于x的数
#include <bits/stdc++.h> #define ls (o<<1) #define rs (o<<1|1) #define mid (l+r>>1) using namespace std; const int N = 2e5+100; int tree[4*N]; void build(int o,int l,int r) { ...原创 2019-02-21 10:23:10 · 1989 阅读 · 0 评论 -
Change FZU - 2277 【dfs序】【树状数组】
题目链接:https://cn.vjudge.net/problem/FZU-2277 题意: 1 v x k : a[v]+=x , a[v’]+=x-k (v’ is child of v) , a[v’’]+=x-2*k (v’’ is child of v’) and so on. 2 v : Output a[v] mod 1000000007(10^9 + 7). 错误思...原创 2019-04-12 19:41:26 · 170 阅读 · 0 评论 -
Continuous Intervals【单调栈】【合法区间计数】
题目链接:https://nanti.jisuanke.com/t/41296 从左到右枚举右端点,然后求合法的左端点的个数。 用max表示区间最大值,min表示区间最小值,cnt表示区间不同数的个数。 合法需要满足max-min-cnt == -1 用单调栈可以找到每次添加右端点后,最大值和最小值需要更新的区间。(都是以R为右端点) 用unordered_map可以找到区间内不同数的个...原创 2019-09-06 17:15:45 · 391 阅读 · 0 评论