被孟加拉题吊打的ACM考试

https://codeforces.com/gym/101864

题目并不难

 

B

考虑新加入的线段和之前线段有交的个数

总数-不交的,不交的:右端点在[l,r]左边,左端点在[l,r]右边的。

维护4个平衡树查询即可

记得pushup。。。。。

记得空格。。。。

记得节点是:N+Q的

 

F

考虑变化之后带来的影响。

看左右之前有无即可。

map维护

前k个有?

定义前k个0表示有,1表示没有,后N-K个同理。

这样开始都是0,特判即可。

 

G

法一:

pollard-rho质因数分解

每个数该质因子最小是ai,个数总和是bi

a,b,c是无序三元组

可以大力容斥消除影响

或者DP,记录集合划分也就是贝尔数。

最后根据集合划分的情况配上系数

法二:

更好的方法。

直接Pi/gcd/gcd/gcd=sum求多少种三个数乘积等于sum且这三个数互质

每个质因子指数必然有一个是0

三个数都相同可以特判掉。

随便选择的:$D=\Pi 3*x $3是0有三个位置,x是0+x,...x-1,1共x种方案

不能直接除以6,两个数相同的情况只会被统计两次

两个数相同?

00x,或者当x是偶数,0,x/2,x/2

所以x是偶数时候额外*=2

最后ans=(D-3*E)/6+E

 

H

枚举lcp,方案数可以DP预处理

大于k就变成long long表示

 

K

每次Y是正数,就是值域分散,

fhq前缀后缀+即可。

Y是负数,值域合并

Y是负数影响总变化只有N次,暴力插入删除。

 

L

开vector,双指针

右指针到了r加入所有r开始的区间,左指针到了l减去所有l结尾的区间

 

posted @ 2019-05-11 17:33  *Miracle*  阅读(280)  评论(0编辑  收藏  举报