线段树
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 · 856 阅读 · 0 评论 -
Subpalindromes(nlogn线段树判断回文串,未填坑)
题目链接 未完成代码#include <bits/stdc++.h>#define ll long longusing 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 · 242 阅读 · 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 51000using...原创 2019-01-18 10:02:29 · 166 阅读 · 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 · 1796 阅读 · 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 · 133 阅读 · 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 · 334 阅读 · 0 评论