【BZOJ1042】硬币购物(动态规划,容斥原理)
生活随笔
收集整理的這篇文章主要介紹了
【BZOJ1042】硬币购物(动态规划,容斥原理)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【BZOJ1042】硬幣購物(動態規劃,容斥原理)
題面
BZOJ
Description
硬幣購物一共有4種硬幣。面值分別為c1,c2,c3,c4。某人去商店買東西,去了tot次。每次帶di枚ci硬幣,買s
i的價值的東西。請問每次有多少種付款方法。
Input
第一行 c1,c2,c3,c4,tot 下面tot行 d1,d2,d3,d4,s,其中di,s<=100000,tot<=1000
Output
每次的方法數
Sample Input
1 2 5 10 2
3 2 3 1 10
1000 2 2 2 900
Sample Output
4
27
題解
真題真好啊。
先不考慮任何有關于硬幣個數的限制
設\(f[i]\)表示沒有任何限制的情況下,價格為\(n\)的方案數
直接做一個背包就行了。
現在加上限制來看,我們用總方案減去不合法。
總方案是\(f[n]\),不合法呢?
某一個硬幣如果不合法,那么它就要用\(d+1\)個
剩下的隨便選,也就是\(f[n-c*(d+1)]\)
這樣直接容斥計算即可。
轉載于:https://www.cnblogs.com/cjyyb/p/8656700.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的【BZOJ1042】硬币购物(动态规划,容斥原理)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 博科查看光功率_法拉第旋光器:非互易性旋
- 下一篇: win10壁纸不能幻灯片放映_如何设置W