2023.8.22 AT practise
ARC068E
考虑计算每辆列车,有多少种商品不被买到。
第 \(i\) 辆列车,若有 $k\cdot i<l,r<(k+1)\cdot i $,则不被买到。
枚举 \(k\) 是调和级数的。
那么这就是一个二维数点,计算有多少个 \(l,r\) 满足 $k\cdot i<l,r<(k+1)\cdot i $。
拆询问,变为前缀的形式。
直接离线下来树状数组即可。
ARC070D
对于 \(i\) 是不是“可有可无”,只需要判断是否存在 \([m-a_i,m-1]\) 的子集和即可。
考虑从前往后,从后往前进行两次可行性背包。
设 \(f(i,j)\) 表示 \(1\sim i\),是否凑出 \(j\),
设 \(g(i,j)\) 表示 \(i\sim n\),是否凑出 \(j\),
至于 \(i\),我们只需合并 \(f(i-1)\) 和 \(g(i+1)\) 即可。
我们考虑枚举 \(f(i-1,j)\) ,检验是否有 \(g(i+1,k)\),满足 \(j+k\in [m-a_i,m-1]\)。
只要把 \(g(i+1)\) 作前缀和即可。
ARC071E
发现操作是可逆的。
考虑把 B 全部变成 A,然后判断 A 的个数是否同余 \(3\) 即可。