用户工具

站点工具


2022-2023:teams:fire_and_blood:week_summary_1

这是本文档旧的修订版!


个人刷题

fks

CF1687C

题解:考虑转化题意,令c[i]=b[i]-a[i],再对c作前缀和,那么就转化为了,每次对于[l,r]如果c[l-1]=c[r],那么把l-r这段区间全部覆盖为c[l-1].要求我们最后能把所有c都变成0.我们倒着考虑,来看操作是否有用(因为一开始我对于区间两两交的影响很头痛)。考虑最后反正要都变成0.那么必然c[l]和c[r]也必须要是0.否则做了和没做一个样。那么我们只对是0的考虑。我们把操作存在两个端点的vector里。暴力判断和更新就好了。用set维护非0位置弹出(set用于均摊,只染色非0位置)。

CF1687D

题解:一开始想的,把段都暴力弄出来,后面扫描线做。但发现其实不需要,考虑可爱的区间是[k^2,k^2+k],那么我们就发现,当我们固定了a[1]的段,也就是a[1]的偏移量的范围确定,后面的段的偏移量也能唯一确定(因为一个段最多从可爱到不可爱,或者从不可爱到可爱,不可能跳变两次(凸性))。那么我们可以发现,一个在不可爱段的最小值,会对下界有影响。一个在可爱段的最大值,会对上界有影响。我们预处理出前驱后继,直接做。每次跳的次数是V/i,那么就是调和级数

CF1687E

题解:考虑给出的形式,实际上是每个因子的min和min_rk2相加,我们考虑他的选择方式,实际上暗示着我们考虑min_Max容斥,比较容易的可以得到式子(用广义minmax可以得到),然而我们发现复杂度是2^n*n,无法通过。似乎没法优化?我们换个方向,想想能否减小n,来简化问题。也就是说挑选出一些代表性的数,来与我们整个数列等价。我们考虑一个定理:一个数最多的因子个数是w(n),在1e6内,这个函数是7。那也就是,我们可以每次钦定每个因子次小/最小给他选上。

个人学习

ddp

新学了ddp,目前只做了P4719,还未学全局平衡二叉树。ddp实际上就是维护了一段重链的转移矩阵,难点在于矩阵的设计和dp状态的设计,可能有时候dp状态会为了转移,把一些权值给并入,比较抽象。

2022-2023/teams/fire_and_blood/week_summary_1.1665234354.txt.gz · 最后更改: 2022/10/08 21:05 由 fks20011206