
数据结构--区间修改
fnq9999
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Codeforces 786B - Legacy 最短路 and 线段树
题意: 1.求S到所有点的最短路 2.三种加有向边的方式 (1)点->点(2)点到区间(3)区间到点 解: 1、暴力的话边加不完, 2、区间操作-->考虑线段树 3、建立两棵线段树 入树和出树 void build(ll &x,ll l,ll r,ll op){ x=++tot; if(l==r){ if(op=...原创 2019-09-20 11:11:08 · 173 阅读 · 0 评论 -
Codeforces 803G - Periodic RMQ Problem 动态开点线段树
题意:给你一个序列,这个序列出现了k次 比如 n=3,k=2的序列 {1,2,3}那么实际的序列就是 {1,2,3,1,2,3} 在这个重复k此的序列上进行区间修改并且查询最值: 解: 1、动态开点线段树 那么每次操作的复杂度就是 log(n*k) 总复杂度 q*log(n*k)可以接受 节点数计算q*2*log(len) (本来可以1A的 节点开少了 : 节点数==1e5*1og...原创 2019-09-27 14:54:03 · 272 阅读 · 2 评论 -
Codeforces 817F MEX Queries 线段树 and 0/1区间修改
离散化+线段树 #include<bits/stdc++.h> #define en '\n' #define ll long long using namespace std; const ll inf=1e18+2; const ll maxn = 1e5+5; const ll maxm=maxn*36; ll rd() { ll x=0,f=1;char ch...原创 2019-10-01 13:53:03 · 161 阅读 · 0 评论 -
Codeforces 817F MEX Queries 线段树
区间修改找最前面0的位置 两个标记: 区间置数很容易理解: 考虑区间翻转的话, 区间置数优先级>区间翻转 然后我们置数时,要将rec_tag清空 #include<bits/stdc++.h> #define en '\n' #define ll long long using namespace std; const ll inf=1e18+2; const...原创 2019-10-01 13:55:33 · 142 阅读 · 0 评论