![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 82
heheda_is_an_OIer
这个作者很懒,什么都没留下…
展开
-
bzoj 1018 堵塞的交通|线段树维护连通性
很久之前听泽神说过这道题,今天终于下定决心写了维护两个横,两个竖,两个斜的连通性h[2],s[2],x[2]。转移如下表(a为左子树,b为右子树,t为目标子树) 查询时要考虑绕了一圈的情况,即[1,l][l,r][r,n]三个区间的连通性最后竟然是close的时候把边赋成了11018: [SHOI2008]堵塞的交通trafficTime Limit: 3 Sec Memor原创 2015-11-16 10:36:48 · 549 阅读 · 0 评论 -
bzoj 4034 t2
带子树维护的树剖要用dfs序,带子节点维护的树剖要用bfs序,不能再混了!!!#include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define eps 1e-8#define N 100010using namespace std;struct yts { int x原创 2015-11-16 10:37:22 · 285 阅读 · 0 评论 -
bzoj 1251 序列终结者
狂刷splay中,机房里不时爆出骂爹骂娘的声音。基本算裸题,唯一写错的地方是在find_k的时候要先release。因为子树的大小会变#include#include#include#include#include#define md#define ll long long#define inf 1000000000000000LL#define eps 1e-8#define N 500010u原创 2015-11-16 10:38:08 · 418 阅读 · 0 评论 -
bzoj 1500 维修数列 bzoj 1507 editor
splay的裸题,一看就会,一写就错。这两道题真的把我弄恶心了。一、update的时候没有考虑左右子树不存在的情况。二、这道题卡内存,必须要用一个queue记录被删掉的节点编号,然后重复利用。三、build的时候sz[mid]=1四、删除节点不能直接tot-=k。因为不一定删除最后k个节点。五、可以利用revit、makeit这种函数打标记。下放的时候直接revit(l),revit(r)。六、1原创 2015-11-16 10:38:11 · 326 阅读 · 0 评论 -
bzoj 1047 理想的正方形
利用单调队列维护以i,j为右下角的正方形的两个极值。把w大成h了。#include#include#include#include#include#define md#define ll long long#define inf (int) 1e9#define eps 1e-8#define N 1010using namespace std;int a[N][N],qmx[N][N],qmn[原创 2015-11-16 10:38:40 · 328 阅读 · 0 评论 -
bzoj 4295 Hazard 【循环】【单调队列】【扫描】
第i个人抽到的序列与(i%m)是一样的,所以只需要讨论i%m剩余系下的问题。首先搞出来每个人抽牌的循环,然后我们要判定这个人需要多少个循环加多少轮才能没钱。需要知道两个东西,一个循环中最小的前缀和和一个循环的和。这样循环数就大约是(初始钱数-最小前缀和-1)/一个循环的和+1,还需要的轮数就是跑完循环之后第一次到0的轮数。现在考虑维护方法:(我比较弱,这些想了好久)先复制一次,循环原创 2015-11-28 22:18:53 · 667 阅读 · 0 评论 -
指针式线段树 bzoj 1798
学习了指针,重写bzoj 1798数组本质是指针,所以可以buid(tr,1,n)一个Tree *tr指针,tr[1]指的是这个指针指向的下一个位置,不是开数组的那个tr,所以都改成了root#include#include#include#include#define ll long long#define inf 1e9#define md#define N 100原创 2017-01-22 18:03:11 · 1102 阅读 · 0 评论