![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
............线段树
文章平均质量分 73
Hivoodoo
这个作者很懒,什么都没留下…
展开
-
hdu5443 The Water Problem(线段树)
求区间最大值 写了一颗线段树比赛的时候第一眼就看见了这个 - -但是手速太慢了还是写了8分多钟#include #define lson num<<1#define rson num<<1|1#define gl l,m,lson#define gr m+1,r,rson#define PARA int l=1,int r=n,int num=1usin原创 2015-09-14 16:20:20 · 469 阅读 · 0 评论 -
UESTC 87 Easy Problem With Numbers 线段树区间更新 逆元 分解质因数
UESTC 87 Easy Problem With Numbers线段树 逆元 分解质因数原创 2015-10-09 16:12:54 · 772 阅读 · 0 评论 -
HDU 4902 Nice boat 线段树 区间更新
HDU 4902 Nice boat题意:一个序列, 两种操作. 1. 把一个区间全部更改为x2. 把一个区间比x大的数全部修改为gcd(ai,x)思路:lazy tagpushDown的原则是把该节点所有tag都推到子节点所以分情况讨论一下即可 最后到叶节点直接更新数列#include #define lson num<<1#define原创 2015-10-09 15:28:08 · 480 阅读 · 0 评论 -
Codeforces Round #271 (Div. 2) F - Ant colony 线段树 + GCD
Codeforces Round #271 (Div. 2) F - Ant colony题意:给定一个序列 有M个提问每次提问求 给定区间中有多少个数 不能整除区间中其他的数 至少有一次.思路:题意转化一下就是求区间中有多少个数能整除其他数.其实这个数就是区间的gcd 于是我们只要在求出区间中这个数的个数即可.对于后者 学习到一个新方法 记原创 2015-10-08 21:16:51 · 594 阅读 · 0 评论 -
Aizu 2450 Do use segment tree (树链剖分)
Aizu 2450 Do use segment tree树链剖分 + 线段树区间更新,就是用线段树求区间最大连续子序列和。求区间最大连续子序列和 的 区间更新 都很好实现。要注意的是最后询问的时候多个区间合并的顺序和正反的问题(就是后面swap那儿)一开始线段树初始化那儿写残了调了好久 - ---------孙大大的板子好长啊 - -原创 2015-10-02 19:46:24 · 686 阅读 · 0 评论 -
poj2528(线段树+离散化)
#include #include #include #include #define gl l,(l+r)>>1,num<<1#define gr ((l+r)>>1)+1,r,num<<1|1const int MAXN = 20005;using namespace std;int pa[10005][2],save[MAXN];short dis[10000005];原创 2014-08-01 10:06:05 · 1057 阅读 · 0 评论 -
POJ2777
这题坑就坑在区间上从A到B更新询问可能出现A>B原创 2014-08-07 13:14:12 · 462 阅读 · 0 评论 -
poj1151 线段树X扫描线X离散
一开始为了节省时间设了-1遇到0就不往下搜原创 2014-08-10 10:52:08 · 711 阅读 · 0 评论 -
hdu1166
///ST#include #include const int MAXN = 50005;int save[MAXN];struct ST{ int left,right,mid,val;}node[3*MAXN];void make(int l,int r,int num){ node[num].left = l ; node[num].right原创 2014-07-07 14:31:45 · 577 阅读 · 0 评论 -
hdu4267
#include #include const int MAXN = 50005;int lowbit(int x){ return x&(-x);}int c[MAXN][11][11],n,a[MAXN];void modi(int pos,int val,int k,int mod){ while(pos>0) { c[pos]原创 2014-07-15 10:10:15 · 767 阅读 · 0 评论 -
poj2828 经典线段树应用 逆序插入
之前用纸正#include #include #include #define lson num<<1#define rson num<<1|1#define gl l,(l+r)>>1,lson#define gr ((l+r)>>1)+1,r,rsonusing namespace std;const int maxn = 200原创 2014-09-06 17:35:56 · 699 阅读 · 0 评论 -
SPOJ 1043 GSS1 zkw线段树
上海赛之前复习+提升一下..zkw原创 2014-10-26 16:36:54 · 800 阅读 · 0 评论 -
SPOJ 1716 GSS3 zkw线段树
这个线段树写起来还算简单和之前原创 2014-10-31 14:44:40 · 937 阅读 · 0 评论 -
HDU 5122 树状数组应用
HDU 51222014北京站 J题题意: 给你一个1~N序列 随机选一个数 sort(向上交换 直到要交换的数比他大)问: 最好的情况要sort几次 才能变为升序列大的 在后面的 肯定要先换 不然就会档着后面的数所以用树状数组逆序插入 插入之前先查找 如果出现了比他小的数就ans++#include #include #inc原创 2014-11-30 17:05:56 · 559 阅读 · 0 评论 -
hdu2665/poj2104;poj2761 区间第k小 函数式线段树
题目骗了啊!!什么 kth big number啊!! 明明是区间第k小啊!!-----------------------------------------THE 函数式 线段树 赶紧补基础 - -#include #include #include #define lson st[num].ls#define rson st[num].rsusing n原创 2015-03-11 18:17:44 · 557 阅读 · 0 评论 -
spoj 3267 DQUIRY主席树
主席树的应用 若该位置的数出现过就把该版本的之前的位置-1 再把该版本的该位置+1,否则直接+1查询的时候 有点像zkw线段树那种 - -(哎呀..遭不住了啊..手真是贱啊..总是写错..花了一个小时debug真是菜啊TAT)#include #include #include #define lson st[num].ls#define rson st[n原创 2015-03-12 20:57:19 · 939 阅读 · 0 评论 -
hdu5454 Excited Database (线段树)
hdu5454 Excited Database线段树区间更新 关键是想到和怎么用比赛是想的二维线段树之类的 苦于不知道怎么斜着更新所以就弃了题解上说的维护a[i]*i 和a[i] 其实是这样的:对于一个矩形的X+Y的值2 3 43 4 54 5 65 6 7x+y 2 3 4 56 7个数 1 2 3 32 1递增原创 2015-09-24 16:22:42 · 1087 阅读 · 0 评论