2018年8月2日暑假训练日记

上午:

莫队算法:

以前对莫队算法的理解就是一个离线分块处理,简单了解了一下觉得没有基础也能写,但是昨天的题发现见到这样的题基本没有什么想法,于是今天重新学习,简单小总结一下吧:

首先莫队算法的时间复杂度:O((m+n)sqrt(n))

时间复杂度不大不小,大概可以处理1e5的区间*1e5的询问

这种询问有特点就是可以相邻区间进行跳转,比如已知(x,y)的状态可以O(1)知道(x-1,y),(x+1,y),(x,y-1),(x,y+1)的状态。

处理方式总的来说就是离线分块

先将区间分块,查询按照左区间的位置分块,按照区间右端点从小到大排序

然后按照公式处理即可

所以说昨天的组合数的题居然用到了莫队,很是吃惊,当时都把转移公式写到纸上了,就是死活不知道是个莫队,悲哀的我,还是得见多识广吧

hdu 4638 莫队算法教科书板子

统计连续区间的个数

移动删除数字的时候如果前后数都有,那么连续区间减少1,前后都没有,连续区间数减少1

增加数字前后都有,连续区间减少1,前后数字都没有,连续区间数增加

BZOJ 3781 莫队

典型例题,比上一个题目的区间移动更为简单一些

昨天的题目:

转移:

s(n,m)=2s(n-1,m)-c(n-1,m)

s(n,m-1)=s(n,m)-c(n,m)

s(n,m+1)=s(n,m)+c(n,m+1)

因为是组合数,所以并没有看出来

下午:

先是一个数学题,老本行就很简单一发过了

然后李华健的一发假贪心,改的我心里憔悴,最后还是想到了所有的状态

接着又骗我贪心a题,各种贪心都是过百分之0,赛后发现就是一个0-1分数规划的裸题,自己只学了0-1整数规划,难受

然后有道规律题忘了把序列分开oeis一下,成功错失

猜你喜欢

转载自blog.csdn.net/m0_37772713/article/details/81367238