线段树
guapisolo
已经弃掉CSDN转博客园了https://www.cnblogs.com/guapisolo/
展开
-
[USACO18JAN] Lifeguards S (线段树:扫描线面积)
扫描线裸题没什么好说的注意空间不要开小了!!!#include <cstdio>#include <cstring>#include <algorithm>#define N 100100#define ll long longusing namespace std;int n,ctx;int cnt[N<<3];ll a...原创 2018-08-30 15:22:11 · 309 阅读 · 0 评论 -
hdu1828 Picture (线段树:扫描线周长)
依然是扫描线,只不过是求所有矩形覆盖之后形成的图形的周长。容易发现,扫描线中的某一条横边对答案的贡献。其实就是 加上/去掉这条边之前的答案 和 加上/去掉这条边之后的答案 之差的绝对值然后横着竖着都做一遍就行了#include <cstdio>#include <cstring>#include <algorithm>#define N ...原创 2018-08-30 16:38:47 · 146 阅读 · 0 评论 -
bzoj 3307 雨天的尾巴 (树上差分+线段树合并)
题目大意:给你一棵树,树上一共n个节点,共m次操作,每次操作给一条链上的所有节点分配一个权值,求所有节点被分配到所有的权值里,出现次数最多的权值是多少,如果出现次数相同就输出最小的。(我辣鸡bzoj的权限号,洛谷上P4556也有这道题)线段树合并入门题也是比较常规的树上链的点差分 每次操作都在x,y上+1,在lca(x,y),fa[lca(x,y)]上-1然后对每个点的所有差分操作...原创 2018-09-01 23:08:57 · 320 阅读 · 0 评论 -
bzoj 4942 NOI2017 整数 (压位+线段树)
题目大意:让你维护一个数x(x位数<=3*1e7),要支持加/减a*2^b,以及查询x的第i位在二进制下是0还是1作为一道noi的题,非常考验写代码综合能力,敲+调+借鉴神犇的代码 3个多小时才过...思路并不难,题目里b<=30n暗示压位,每次压30位可过先分析一下加法,加a*2^b相当于在第b-1位加a,如果进位了(即>),那就在下一位+1,如果下一位还进位了,那...原创 2018-09-05 20:10:07 · 152 阅读 · 0 评论 -
bzoj 5249 [九省联考2018]iiidx (线段树+贪心)
题目大意:给你一个序列,让你对它重新排列,保证a[i]<=a[i/k],求字典序最大的排列洛谷传送门把i/k和i连边,发现形成了一个类似于小根堆的树形结构先是一个错误的贪心:贪心每次选择前size[x]大个数依次填到树里这种方法在有重复数字的时候会出锅,比如1112,如果用上面的方法就是1112,但正确的是1121原因呢,就是填满一颗子树内并不一定要用完偏大的,可能和子树...原创 2018-10-09 15:42:28 · 240 阅读 · 0 评论