这是一道简单应用线段树的题 代码也是书上的,敲一边熟悉一下 #include <iostream>#include <cstdio>using namespace std;const int MAX=1e5+10;long long sum[MAX<<2],add[MAX<<2]; void up_ ...
分类:
其他好文 时间:
2020-02-11 19:07:08
阅读次数:
53
话说主席树还没写就先写这一篇了$qwq$ 回顾一下主席树的实现过程:类似查分思想,将线段树的每次修改看做函数式以支持可持久化。因为这样的线段树是可减的。 那么我们维护信息的时候,就要维护每一次新形成的信息。但是我们可以根据前一个信息的基础上进行改动,而不必要去再建一棵树。 所以总而言之,是前缀和的思 ...
分类:
编程语言 时间:
2020-02-11 11:20:46
阅读次数:
96
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; typedef long long ll; const int N=1e5+10; struct node{ ...
分类:
其他好文 时间:
2020-02-11 09:27:57
阅读次数:
52
//线段树区间覆盖 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; const int N=100010; int flag; struct node{ in ...
分类:
其他好文 时间:
2020-02-11 09:25:59
阅读次数:
54
//add,懒标记,给以当前节点为根的子树中的每一个点加上add(不包含根节点) // #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; typedef ...
分类:
其他好文 时间:
2020-02-11 09:22:13
阅读次数:
70
第一行输入n,m ,n代表有n个房间,编号为1 n,开始都为空房,m表示以下有m行操作,以下 每行先输入一个数 i ,表示一种操作: 若i为1,表示查询房间,再输入一个数x,表示在1 n 房间中找到长度为x的连续空房,输出连续x个房间中左端的房间号,尽量让这个房间号最小,若找不到长度为x的连续空房, ...
分类:
其他好文 时间:
2020-02-10 10:16:48
阅读次数:
66
第一次写这个题是好长时间以前了,然后没调出来. 本来以为是思路错了,结果今天看题解发现思路没错,但是好多代码细节需要注意. code: #include <cstdio> #include <vector> #include <map> #include <cstring> #include <al ...
分类:
其他好文 时间:
2020-02-09 16:50:44
阅读次数:
83
毕生所学。 1 const int N = 2e5 + 10; 2 #define lson rt << 1 // == rt * 2 左儿子 3 #define rson rt << 1 | 1 // == rt * 2 + 1 右儿子 4 #define int_mid int mid = tr ...
分类:
其他好文 时间:
2020-02-09 14:41:56
阅读次数:
166
"Crane" 因为这道题需要需要对数据进行多次修改以及多次查询,而且涉及区间修改,所以最高效的办法就是利用线段树对其进行优化。 ...
分类:
其他好文 时间:
2020-02-08 17:26:58
阅读次数:
76
ST表超级详解 关于ST表,有很多文章,这里本蒟蒻也来发一波~~ 希望能为您提供帮助~~ 1.ST表的介绍 ST表算法全称Sparse-Table算法,是由Tarjan提出的一种解决RMQ问题(区间最值)的强力算法。离线预处理时间复杂度 θ(nlogn),在线查询时间 θ(1),可以说是一种非常高效 ...
分类:
其他好文 时间:
2020-02-08 14:05:00
阅读次数:
113