2018.10.19 NOIP训练 桌子(快速幂优化dp)

本文探讨了一道经典的动态规划题目,重点在于如何利用背包+快速幂优化算法来解决棋子在特定列上的排列组合问题。文章分析了棋子数量在不同列之间的规律,以及如何通过枚举和优化转移来求解选法数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

传送门
勉强算一道dp好题。


显然第 k k k列和第 k + n k+n k+n列放的棋子数是相同的。
因此只需要统计出前 n n n列的选法数。
对于前 m m m% n n n列,一共有 ( m − 1 ) / n + 1 (m-1)/n+1 (m1)/n+1列跟它放的棋子数一定相同
而对于第 m m m% n + 1 n+1 n+1~ n n n列,一共有 m / n m/n m/n列跟它放的棋子数一定相同
因此枚举当前在第几列,一共放了几个棋子,然后用背包+快速幂优化转移就行了。
代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值