随笔分类 - 数据结构:线段树与树状数组
【POJ3321】Apple Tree
摘要:树上单点修改,子树查询 可以在这棵树的dfs序上建线段树维护 PS:modify、query的时候传入x的dfs序即可 1 #include<cstdio> 2 #include<cstring> 3 using namespace std; 4 const int N=100010,M=40001
阅读全文
【POJ3468】A Simple Problem with Integers
摘要:单一标记线段树。 在给定数列上建树:build时读入即可。 1 #include<cstdio> 2 #include<cstring> 3 using namespace std; 4 const int N=100010; 5 long long tag[N<<2],sum[N<<2],c; 6
阅读全文
【YY1】三部曲
摘要:三部曲 【问题描述】 因为外来的入侵,国王决定在某些城市加派士兵。所有城市初始士兵数量为0。当城市 i 被加派了 𝑘名 士兵时,城市 i 的所有子城市需要被加派 𝑘+1名士兵。这些子城市的所有子城市需要被加派 𝑘+2名士 兵。以此类推。当然,加派士兵的同时国王也需要不断了解前情况。于是他随时可
阅读全文
【HDU2795】Billboard
摘要:本质上,区间最大值; 高为区间长度,宽度为每个元素初始大小 PS:1 <= h,w <= 10^9,而n次放置都是放在可能位置的最上面 所以对于每一种case,取h和n的最小值建树 1 #include<cstdio> 2 #include<cstring> 3 using namespace st
阅读全文
【HDU1698】Just a Hook
摘要:单一标记线段树 1 #include<cstdio> 2 #include<cstring> 3 #define lson i<<1,l,mid 4 #define rson i<<1|1,mid+1,r 5 using namespace std; 6 const int N=400020; 7
阅读全文
【HDU1166】敌兵布阵
摘要:线段树模板题 1 #include<cstdio> 2 #include<cstring> 3 using namespace std; 4 const int N=50010; 5 int t,n,h[N],sum[4*N]; 6 char ch[20]; 7 void update(int),b
阅读全文
【BZOJ1012】最大数
摘要:显然线段树模板题 1 #include<cstdio> 2 #include<cstring> 3 using namespace std; 4 const int N=200000; 5 long long INF=1000000000000; 6 int len,m,n; 7 long long
阅读全文
【BZOJ1878】HH的项链
摘要:基本上每个网站上都有,就不粘提面啦。 这道题要求维护区间种类数,不支持区间加减法。 所以需要通过一些转换使其满足树状数组/线段树的条件。 首先,对于段区间中的数,若有数重复出现,则只需关心最后出现的一个。 所以,我们可以对所有查询区间的r非降排序,从左向右推now_r并同时维护一个树状数组。 树状数
阅读全文
浙公网安备 33010602011771号