其他分享
首页 > 其他分享> > 数位 dp trick

数位 dp trick

作者:互联网

CF1290F Making Shapes

考虑凸包,向量集合确定了就能确定唯一凸包。

考虑向量加法转化到最后就是 \(\sum_{x_i>0}c_ix_i=-\sum_{x_i<0}c_ix_i,\sum_{y_i>0}c_iy_i=-\sum_{y_i<0}c_iy_i,\sum_{x_i>0}c_ix_i\le m,\sum_{y_i>0}c_iy_i \le m\)

这里 trick 就是用数位 dp 的方式去解决 c 的方案。

先考虑在 10 进制下怎么做?

因为有进位,意味着我们要从低位到高位确定 \(c_i\),假如当前到了第 \(pos\) 位,那么从 \([0,9]\) 枚举,然后使得其符合条件(每一位都要满足当前位的 \(\sum_{x_i>0}c_ix_i=-\sum_{x_i<0}c_ix_i,\sum_{y_i>0}c_iy_i=-\sum_{y_i<0}c_iy_i\) ,做类似十进制下的加法运算(维护每一个 \(sum\) 的进位)即可。

更优地,即在二进制下做加法。

标签:iy,ix,le,i0,sum,trick,dp,数位
来源: https://www.cnblogs.com/xugangfan/p/16218224.html