![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线段树
winhcc
这个作者很懒,什么都没留下…
展开
-
hdu 1166
线段树,点修改,区间查询。 #include <cstdio> #include <algorithm> #include <cstring> using namespace std; typedef long long LL; const int maxn = 50000 + 20; int n,a[maxn],sumv[maxn<<2],ca...原创 2019-04-06 21:59:32 · 118 阅读 · 0 评论 -
hdu 1754
线段树,区间查询, 点修改 #include <cstdio> #include <algorithm> #include <cstring> using namespace std; typedef long long LL; const int maxn = 200000 + 20; int n,a[maxn],maxv[maxn<<2],c...原创 2019-04-07 00:10:01 · 145 阅读 · 0 评论 -
hdu 1698
线段树,区间设置值,区间查询。 需要注意的是标记pushdown的时候一定要把sum更新。 #include <cstdio> #include <algorithm> #include <cstring> using namespace std; const int N = 100000 + 10; int t,n,sumv[N<<2],set...原创 2019-04-07 13:26:42 · 131 阅读 · 0 评论 -
poj 2828
线段树,点修改,区间查询。 给你n个人,和他们当时在队伍中的位置,问最后这n个人的位置情况 可知若最后一个人插到k的位置上,那么位置k就是最后的那个人,n-1,n-2同理 如果第i个人要插到位置u,而位置u已经被占了(i+1-n中有人占了位置u),那么他只能往后找一个没有被占的位置 sum表示区间[l,r]还有的空位数。 #include <cstdio> #include <a...原创 2019-04-07 13:42:30 · 211 阅读 · 0 评论 -
hdu 2795
一个h*w 的竖直平面,有n个间物品,每个物品是1*wi,要尽量往上放,问应该放在哪。 线段树真是奇妙~ 主要是题目规定了必须要尽量往上放,不然就是个贪心了~ 区间的含义是[l,r]行中可以放的位置最大的空间,那就是点修改,点查询了 #include <cstdio> #include <algorithm> #include <cstring> using ...原创 2019-04-21 21:51:15 · 127 阅读 · 0 评论 -
poj 2182
有一个1-n的序列,第i个数知道在它前面且比它小的数的个数,求该序列。 线段树,点修改,点查询。 更细致一点,是权值线段树,查区间第k大 #include <cstdio> const int N = 8000 + 10; int n,sumv[N<<2],a[N],ans[N]; void build(int rt,int L,int R){ if(L == R) ...原创 2019-04-23 20:25:45 · 460 阅读 · 0 评论