
线段树
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 · 154 阅读 · 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 · 187 阅读 · 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 · 172 阅读 · 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 · 243 阅读 · 0 评论 -
hdu 2795
一个h*w 的竖直平面,有n个间物品,每个物品是1*wi,要尽量往上放,问应该放在哪。线段树真是奇妙~主要是题目规定了必须要尽量往上放,不然就是个贪心了~区间的含义是[l,r]行中可以放的位置最大的空间,那就是点修改,点查询了#include <cstdio>#include <algorithm>#include <cstring>using ...原创 2019-04-21 21:51:15 · 155 阅读 · 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 · 495 阅读 · 0 评论