线段树
bababaab
QwQ
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
BZOJ 3888: [Usaco2015 Jan]Stampede
线段树+离散预处理出每头牛到FJ面前的时间和离开时间,离散后用线段树按时间覆盖,最后统计牛的编号数注意从y大的开始先覆盖,还有给出的是牛的尾巴坐标,牛头是(x,y+1)。我因为这WA了好几次。。。代码:#include#include#includeusing namespace std;int tree[500000*2+10]; struct s{ int原创 2015-11-13 16:59:11 · 538 阅读 · 0 评论 -
BZOJ4034:[HAOI2015]T2
树链剖分,理解了也就这么点事两次DFS,第一次处理出树的父子关系以及求出每个节点的子节点数,第二次处理重链与轻链。把树分为重链和轻链,选择子节点最多的儿子继承重链,其余另开一条链。一条链上的点在线段树中分配连续的位置,方便求和等操作。参考了下黄学长的代码。。查了几个小时结果是因为一个类型打错了差点弄出神经病。原创 2015-12-21 19:26:48 · 492 阅读 · 0 评论 -
BZOJ 1636: [Usaco2007 Jan]Balanced Lineup
方法很多 倍增,线段树,树状数组都是可以的 维护区间最大值和最小值 推荐用倍增 虽然我写了树状数组。。。。#include<cstdio>#include<cstring>#include<algorithm>#define g getchar()#define ll long long#define inf 0x3f3f3f3fusing namespace std;inli原创 2016-07-24 13:12:28 · 954 阅读 · 0 评论 -
BZOJ 2223: [Coci 2009]PATULJCI
和这个BZOJ 3524: [Poi2014]Couriers没什么区别吧大约 都是裸的主席树 其实这是很久之前写的我现在快忘了 到时候在看看吧我。。。 发现看别人代码或看自己代码都是煎熬 (啊他这么写谁看的懂啊?) (哎呀我去怎么自己写的这么丑。。)#include<bits/stdc++.h>#define g getchar()#define ll long long#def原创 2016-07-24 13:21:25 · 444 阅读 · 0 评论 -
BZOJ 1230: [Usaco2008 Nov]lites 开关灯
水了一道线段树 然而WA了一次。。 对于一个区间[l,r]操作一次后个数变为(r-l+1)-sum[k] 也没什么其他的了。。原创 2016-10-25 21:23:06 · 603 阅读 · 0 评论 -
BZOJ 4653: [Noi2016]区间
先离散化 然后按照长度从小到大排序 然后按长度顺序依次加入 用线段树维护当前的覆盖最多几条 然后如果当前有点的覆盖数等于mm的就一直出队列,直到小于mm,当前解的答案就是最后进队列的长度减最后出队列的长度 单调性可以证明,手画画搞搞也许可以吧。。。 年代太久远发现自己的代码都看不大懂了。。原创 2016-10-17 22:27:50 · 418 阅读 · 0 评论
分享