![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线段树
bababaab
QwQ
展开
-
BZOJ 3888: [Usaco2015 Jan]Stampede
线段树+离散 预处理出每头牛到FJ面前的时间和离开时间,离散后用线段树按时间覆盖,最后统计牛的编号数 注意从y大的开始先覆盖,还有给出的是牛的尾巴坐标,牛头是(x,y+1)。我因为这WA了好几次。。。 代码: #include #include #include using namespace std; int tree[500000*2+10]; struct s { int原创 2015-11-13 16:59:11 · 487 阅读 · 0 评论 -
BZOJ4034:[HAOI2015]T2
树链剖分,理解了也就这么点事 两次DFS,第一次处理出树的父子关系以及求出每个节点的子节点数,第二次处理重链与轻链。 把树分为重链和轻链,选择子节点最多的儿子继承重链,其余另开一条链。 一条链上的点在线段树中分配连续的位置,方便求和等操作。 参考了下黄学长的代码。。 查了几个小时结果是因为一个类型打错了差点弄出神经病。原创 2015-12-21 19:26:48 · 448 阅读 · 0 评论 -
BZOJ 1636: [Usaco2007 Jan]Balanced Lineup
方法很多 倍增,线段树,树状数组都是可以的 维护区间最大值和最小值 推荐用倍增 虽然我写了树状数组。。。。#include<cstdio> #include<cstring> #include<algorithm> #define g getchar() #define ll long long #define inf 0x3f3f3f3f using namespace std; inli原创 2016-07-24 13:12:28 · 896 阅读 · 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 · 399 阅读 · 0 评论 -
BZOJ 1230: [Usaco2008 Nov]lites 开关灯
水了一道线段树 然而WA了一次。。 对于一个区间[l,r]操作一次后个数变为(r-l+1)-sum[k] 也没什么其他的了。。原创 2016-10-25 21:23:06 · 561 阅读 · 0 评论 -
BZOJ 4653: [Noi2016]区间
先离散化 然后按照长度从小到大排序 然后按长度顺序依次加入 用线段树维护当前的覆盖最多几条 然后如果当前有点的覆盖数等于mm的就一直出队列,直到小于mm,当前解的答案就是最后进队列的长度减最后出队列的长度 单调性可以证明,手画画搞搞也许可以吧。。。 年代太久远发现自己的代码都看不大懂了。。原创 2016-10-17 22:27:50 · 377 阅读 · 0 评论