退役前的做题记录2.0

2020.2.29

ARC068E

枚举\(d\)后再枚举位置的复杂度是调和级数,那么问题变成了如何不重复的算上每一个纪念品。

注意到对于一个区间,当其长度\(\geq d\)的时候一定会被统计到,而当长度\(< d\)的时候至多会在一个位置被统计到。

树状数组维护当前区间长度\(<d\)的区间的贡献即可。
code

ARC067E

暴力dp的复杂度是调和级数,于是只需要考虑快速计算贡献即可。

我们枚举使用\(k\)个大小为\(t\)的物品,那么\(f_i\)转移到\(f_{i+kt}\)的贡献就是:

\[ \dbinom{N-i}{kt}\frac{(kt)!}{(t!)^kk!} \]

暴力做就好了。

code

CF1303F

动态图连通性?线段树分治?不是TLE就是MLE

考虑一次修改将\(x\)改为\(y\),相当于在\(x\)的块内删边同时在\(y\)的块内加边。

注意到题面保证\(c_i\leq c_{i+1}\),也就是对每一种颜色,删边操作在加边操作之后才出现,那么我们可以将两种操作分开计算贡献。加边的贡献直接算,删边的贡献从后往前做就可以当做加边。

code

猜你喜欢

转载自www.cnblogs.com/encodetalker/p/12387530.html