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\) 即可。

posted @ 2023-08-22 21:51  s1monG  阅读(12)  评论(0编辑  收藏  举报