[csp-s模拟测试72] 简单的期望

瓶颈:对2进制不敏感,没有简化题意。没有想到通过操作的性质设计状态。(其实第一步就卡住了orz)

"令 d 为 w 的质因数分解中 2 的次数"那么d其实就是w的二进制下末尾0的个数。

设c为$w=\sum\limits2^{k_i}$中的最小$k_i$,那么最大的能够整除w的2的整次幂就是$c$

于是确定1.记录末尾0的个数。

由于+1进位,确定2.要状压

“对于 100% 的数据,x ≤ 10^9, n ≤ 200, 0 ≤ p ≤ 100。”  发现操作数很少,如果我们状压8位(256),那么至多进位1次。

YY一下进位,末尾连续一串1变0,连续一串1的最前面的0进1。那么如果只进位一次的话,第9位是0第8为是1的进位情况我们就不用管第10及前面有多少1,也没有前面的进位情况,这样我们就不用关心9位后的具体状态。3.只记录9位0/1和从9位向前的连续位数。

进而分类转移,比较好写,说明概括而清晰的状态定义是dp关键的一步。

posted @ 2019-10-15 17:14  hzoi_yzh  阅读(147)  评论(0编辑  收藏  举报