L_0_Forever_LF的专栏

曾是一个OIer

排序:
默认
按更新时间
按访问量

LOJ#2461. 「2018 集训队互测 Day 1」完美的队列

可以先看一下这篇,写的比较详细了 我们考虑对每个询问jjj求出一个ed[j]ed[j]ed[j],表示在执行完(j,ed[j]](j,ed[j]](j,ed[j]]的操作后,jjj在序列里加入的所有xxx全部被pop出去了,就可以对每个颜色xxx求出若干个存在的区间,将这些区间取并,即可差分贡献...

2018-06-14 08:03:45

阅读数:135

评论数:0

CodePlus3月月赛 博弈论与概率统计

求n+m局游戏恰好赢了n局的游戏的期望得分 记胜为+1,负为-1 期望得分可以用每种序列的得分*该种序列出现概率求和,最后再除以恰好出现n个1的概率 由此可以发现每种序列出现概率是相同的,就是说这个p并没有什么用 记 prei=∑ij=1ai&nb...

2018-03-05 16:15:56

阅读数:271

评论数:0

BZOJ2957: 楼房重建

楼房i被看见的条件是他和起点连线的斜率是1~i里最大的可以用线段树做 维护每个区间的ans,max 合并区间的时候, 左区间的ans是可以直接加的, 对于右区间,当左区间的max>右区间max时,整个区间被挡住,没有贡献 当左区间的max<右区间max时,需要递归下右区间找 ...

2017-04-23 20:35:25

阅读数:343

评论数:0

BZOJ3809: Gty的二逼妹子序列

空间这么小…然后就莫队了(不知道三维kd-tree能不能过) 本来想打BIT,结果发现过不了的样子,因为修改比较多,询问比较少,所以可以考虑平衡复杂度,用分块维护(修改O(1),询问O(n√\sqrt n))code:#include<set> #include<map>...

2017-03-18 09:07:12

阅读数:344

评论数:0

分块小总结

分块这个东西吧,其实它就是个暴力。。。想一些序列、树上问题,想来想去没什么想法了可以分块(树上分块我好像还不会QAQ)分块能处理一些数据结构很难处理或者不能处理的东西(如有间隔的询问、修改),分块也有标记而且也需要支持标记合并分块有很多分块的方法,可以对处理的序列分块,对操作分块,对询问分块等分块...

2016-10-28 10:31:41

阅读数:667

评论数:2

BZOJ2821: 作诗(Poetize)

分块,因为没有修改的操作,在线询问,所以可以预处理出s[i][j]表示1到i块j出现的次数,f[i][j]表示i到j块有多少数出现次数为偶数,询问时两端的块暴力做一下就行了 题目卡空间(有毒),把块的大小调一下就没问题了code:#include<set> #include<m...

2016-10-28 09:52:56

阅读数:582

评论数:0

codechef minxor

分块,每个块开一棵字典树,暴力询问,修改时没有被完整覆盖的块暴力重构code:#include<cmath> #include<cstdio> #include<cstdlib> #include<cstring> #include<climi...

2016-10-27 20:24:13

阅读数:217

评论数:0

BZOJ2724: [Violet 6]蒲公英

分块 不带修改的,可以先预处理f[i][j]表示第i块到第j块的众数,s[i][j]表示第1到第i块j出现的次数,每加入一个块,新的众数只可能是原块的众数、新块的众数或新块里的一个数,在新块里找一下就可以了,预处理O(nn−−√)O(n \sqrt n) 询问的话,被完全覆盖的块的众数可以O(...

2016-10-27 13:37:35

阅读数:616

评论数:0

codechef Chef and Churu

传送门 将n个函数分块,预处理出每个位置在每个函数里用到多少次,修改时维护每个块内所有函数的和,询问时被完整覆盖的块直接累加和,被部分覆盖的块用树状数组暴力求和 要用unsigned long longcode:#include<set> #include<map> #...

2016-10-27 09:32:58

阅读数:266

评论数:0

BZOJ3509: [CodeChef] COUNTARI

想不到怎么办,分块试一下 块内的可以直接DP出来,块与块之间的,化一下公式发现ai+ak=2aja_i+a_k=2a_j,所以处理第i块,维护1~i-1块每个数出现次数,i+1~n块每个数出现次数,FFT卷积一下,枚举块内的每个值的两倍累加上答案 鉴于FFT常数大,块的大小定为1800左右比较...

2016-10-26 22:17:10

阅读数:684

评论数:0

BZOJ2388: 旅行规划

分块,每一块维护前缀和,观察发现,一次区间加操作对于LL前,RR后的区间里相对的大小关系没有影响,对于[L,R][L,R]里,将每个位置放在平面内作为一个点(i,si)(i,s_i),那么相当于给区间里加了一个斜率。 每个块维护一个凸包(上凸下凸应该都可以,下文以上凸为例),如果这个块被完整覆盖...

2016-10-26 16:16:27

阅读数:539

评论数:0

BZOJ3343: 教主的魔法

因为询问大于等于一个值的数量,还要支持区间加,考虑操作数不多,可以分块 因为操作数很少,每个块内排序,询问时两端点的块扫一遍,中间的块二分,修改时如果覆盖了整个块就给这个块打个标记,否则暴力修改后重新排序,每次修改&询问复杂度O(n−−√logn−−√)O(\sqrt n log \sq...

2016-10-26 09:58:59

阅读数:749

评论数:0

BZOJ2002: [Hnoi2010]Bounce 弹飞绵羊

分块,每个点处理他跳到下一块时跳到哪个点,需要多少步 询问时一个一个块跳 修改时修改整个块的信息 code:#include<cmath> #include<cstdio> #include<cstdlib> #include<cstring>...

2016-10-25 20:41:12

阅读数:523

评论数:0

BZOJ2453: 维护队列&2120: 数颜色

pre[i]表示与i颜色相同的上一个在pre[i]的位置,nex[i]表示下一个,那么询问可以转化成问[l,r][l,r]里pre<lpre<l的有多少个 分块,每个块内将pre排序。 询问时扫过去每个块内二分一下<l<l的位置,两端的块在块内扫一遍 将第x位置修改成y时要修改3...

2016-10-25 20:38:50

阅读数:435

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭