
线段树
文章平均质量分 85
even_bao
这个作者很懒,什么都没留下…
展开
-
【扬中集训 DAY4T3】holiday
【题目链接】 点击打开链接【算法】 建C棵线段树即可,注意要用前缀和优化【代码】 这是标程 #include <bits/stdc++.h>using namespace std;const int MAXR = 50005, MAXC = 17, MAXN = 4 * MAXR + 10;int R, C, Q;i...原创 2018-02-14 13:12:55 · 199 阅读 · 0 评论 -
【HAOI 2015】 树上操作
【题目链接】 点击打开链接【算法】 树链剖分 子树的DFS序是连续的一段!【代码】 #include<bits/stdc++.h>using namespace std;#define MAXN 100010struct Edge{ int to,nxt;} e[MAXN*2];int ...原创 2018-05-19 09:55:55 · 191 阅读 · 0 评论 -
【POJ 1151】 Altlantis
【题目链接】 点击打开链接【算法】 线段树扫描线 推荐一篇比较容易理解的线段树扫描线的文章 : https://blog.youkuaiyun.com/u013480600/article/details/22548393【代码】 注意此题输出格式若使用"%.2lf"会离奇Wrong Answer,要改为"%.2f" #in...原创 2018-04-29 21:43:41 · 146 阅读 · 0 评论 -
【SCOI 2007】 降雨量
【题目链接】 点击打开链接【算法】 线段树 此题细节很多,写程序时要细心!【代码】 #include<bits/stdc++.h>using namespace std;#define MAXN 50010struct Node{ int l,r,mx;} Tree[MAXN<&l...原创 2018-06-02 22:08:39 · 264 阅读 · 0 评论 -
【USACO 2008FEB】 旅馆
【题目链接】 点击打开链接【算法】 线段树 对于一个节点,记录它从左端点延伸的最多的空房间的个数,从右端点延伸的最多的空房间个数,和该区间最多的连续 空房间个数【代码】 #include<bits/stdc++.h>using namespace std;#define MAXN 50010...原创 2018-05-26 23:00:51 · 161 阅读 · 0 评论 -
【LNOI 2014】 LCA
【题目链接】 点击打开链接【算法】 考虑求lca(x,y)的深度 我们可以将从根到x路径上的点都打上标记,然后,询问y到根上路径的权值和 那么,求sigma(lca(i,z))(l <= i <= r ),我们可以将区间[l,r]中的点依次打上标记,然后,询问点z到根路径 上的权值和 ...原创 2018-05-31 19:29:35 · 525 阅读 · 0 评论 -
【USACO 2010FEB】 slowdown
【题目链接】 点击打开链接【算法】 dfs序 + 线段树 树链剖分同样可以解决这个问题【代码】 #include<bits/stdc++.h>using namespace std;#define MAXN 100010int i,n,p,a,b,timer;int tag[MAXN<&l...原创 2018-06-01 19:20:33 · 228 阅读 · 0 评论 -
【BZOJ 4353】 Play with tree
【题目链接】 点击打开链接【算法】 树链剖分 对于线段树的每个节点,记录这段区间的最小值,最小值的个数,值为0的个数,此外,还要维护两个懒惰标记【代码】 本题细节很多,写程序时要认真严谨!#include<bits/stdc++.h>using namespace std;#define MAXN 10001...原创 2018-06-01 22:56:52 · 209 阅读 · 0 评论 -
【BZOJ 3211&3038】 花神游历各国 & 上帝造题的七分钟2
【题目链接】 点击打开链接【算法】 线段树 开根操作直接开到叶子节点,注意当区间中所有数都是0或1时,不需要开根【代码】 #include<bits/stdc++.h>using namespace std;#define MAXN 100010int i,n,m,opt,l,r;long lo...原创 2018-06-02 09:33:37 · 150 阅读 · 0 评论 -
【NOI 2015】软件包管理器
【题目链接】 点击打开链接【算法】 树链剖分,子树的DFS序也是连续的一段 要注意细节!【代码】 #include<bits/stdc++.h>using namespace std;#define MAXN 100000struct SegmentTree { int l,r,sum[2],opt; } tr...原创 2018-02-12 17:32:37 · 283 阅读 · 0 评论 -
【ZJOI 2008】树的统计
【题目链接】 点击打开链接【算法】 树链剖分模板题【代码】 #include<bits/stdc++.h>using namespace std;#define MAXN 30000struct SegmentTree { int l,r,maxn,sum; } tree[MAXN*3];int i,N,Q,u,v...原创 2018-02-12 17:37:22 · 235 阅读 · 0 评论 -
【JSOI 2014】序列维护
【题目链接】 点击打开链接【算法】 线段树 注意标记下传【代码】 #include<bits/stdc++.h>using namespace std;#define MAXN 500000typedef long long LL;struct SegTreeNode { LL l,r,sum,l...原创 2018-03-03 18:47:29 · 198 阅读 · 0 评论 -
【POI 2006】 Tet-Tetris-3D
【题目链接】 点击打开链接【算法】 二维线段树(树套树) 注意标记永久化【代码】 #include<bits/stdc++.h>using namespace std;#define MAXD 1000int D,S,N,d,s,w,x,y,tmp;struct SegmentTree { str...原创 2018-04-10 21:56:15 · 215 阅读 · 0 评论 -
【HDU 4819】Mosaic
【题目链接】 点击打开链接【算法】 二维线段树(树套树)【代码】 #include<bits/stdc++.h>using namespace std;#define MAXN 800int i,q,n,xa,xb,ya,yb,l,tmp,T,Max,Min,x,y;struct info { int Max,Mi...原创 2018-04-13 22:06:20 · 219 阅读 · 0 评论 -
【JSOI 2008】 最大数
【题目链接】 点击打开链接【算法】 很明显,我们可以用线段树解决此题 只需维护区间最值就可以了【代码】 #include<bits/stdc++.h>using namespace std;#define MAXM 200000int M,D,x,l,lastans,len;int Max[MAXM*...原创 2018-04-30 21:33:03 · 278 阅读 · 0 评论 -
【IOI 1998】 Picture
【题目链接】 点击打开链接【算法】 线段树扫描线求周长并【代码】 #include <algorithm>#include <bitset>#include <cctype>#include <cerrno>#include <clocale>#include <...原创 2018-05-01 22:30:53 · 446 阅读 · 0 评论 -
【Codeforces 915E】 Physical Education Lessons
【题目链接】 点击打开链接【算法】 线段树,注意数据量大,要动态开点【代码】 #include<bits/stdc++.h>using namespace std;const int MAXN = 10000005;int n,q,l,r,opt,size = 1,root = 1;struct Node { int...原创 2018-05-05 18:35:18 · 366 阅读 · 0 评论 -
【SDOI 2014】 旅行
【题目链接】 点击打开链接【算法】 树链剖分 每个宗教建一棵线段树,注意数据量大,要动态开点【代码】 #include<bits/stdc++.h>using namespace std;#define MAXLOG 18const int MAXN = 1e5 + 10;const int MAXS ...原创 2018-05-12 11:03:54 · 153 阅读 · 0 评论 -
【SDOI 2011】染色
【题目链接】 点击打开链接【算法】 树链剖分【代码】 本题,笔者求最近公共祖先并没有用树链剖分“往上跳”的方式,而是用倍增法。笔者认为这样比较好写,代码可读性 比较高 此外,笔者的线段树并没有用懒惰标记,只要当前访问节点的线段总数为1,那么就下传 #include<bits/stdc++....原创 2018-05-03 22:03:19 · 193 阅读 · 0 评论 -
【TJOI 2018】数学计算
【题目链接】 点击打开链接【算法】 线段树维护区间乘积【代码】 #include<bits/stdc++.h>using namespace std;#define MAXQ 100010struct SegmentTree{ int l,r; long long sum;} Tree[MAXQ&...原创 2018-06-16 19:15:40 · 297 阅读 · 0 评论