摘要: 听说是签到题。 不难看出设x为i二进制个数下1的个数(还是难的),则a_i=c^x。那么我们只需要考虑所有0到n的个数。 当n为1111时,可以得到为(1+c)^n次方,那么我们把答案看成两部分一部分是1到111...和1000到n, 那么当si位为1时,可以看成是n去掉前一位后再乘以c,递推得到每 阅读全文
posted @ 2023-08-03 10:59 552Hz 阅读(21) 评论(0) 推荐(0)
摘要: 这题的物品数量非常小,但是背包的重量非常大,我们采用压缩到二进制位来考虑,因为最多是n*20的数位*个数,并且上一位dp的状态不影响下一位。所以我们设计当前dp的状态为选取了前i位置时候所能获得的最大值。又因为上一维在数组dp时可能会被上一维的影响所以f[min(2*i+d,s)] =max(f[m 阅读全文
posted @ 2023-08-03 10:18 552Hz 阅读(15) 评论(0) 推荐(0)
点击右上角即可分享
微信分享提示