硬幣購物一共有\(4\)種硬幣。面值分別為\(c_1,c_2,c_3,c_4\)。某人去商店買東西,去了\(tot\)次。每次帶\(d_i\)枚\(c_i\)硬幣,買\(s_i\)的價值的東西。請問每次有多少種付款方法。
好的,比較欣喜的一點是我們如果不考慮什麼帶了\(k_i\) 個,那麼其實就是乙個完全揹包是不是……但是他有乙個特別\(zz\)的限制條件。那我們不妨考慮從總方案數裡面減去不合法的方案。但是吧,會有重複減這種情況,所以我們還要容斥。
那麼套用容斥原理的基本公式,就可以得到\(ans\)
還有一點,就是如何計算不合法的方案呢?
我們思考對於完全揹包的遞推式大概長這樣:$$f_i = \sum\limits_^f_$$
那麼也就是對於所有不合法的狀態比如\(f_,t \geq 1\)都會有著這樣的遞推式$$f_ = \sum \limits_f_$$
那麼也就是說對於最終結果,就存在\(f_\) 裡面
// luogu-judger-enable-o2
#include #include #define maxn 5
#define max 100010
#define ll long long
using namespace std ; ll t, ans ;
ll n, c[5], f[max], d[5], s, i, j, k ;
inline ll qr()
inline ll work(ll x)
int main()
return 0 ;
}
HAOI 2008 硬幣購物
硬幣購物一共有 4 44 種硬幣。面值分別為 c1,c2,c 3,c4 c 1,c 2,c 3,c 4 c1 c2 c3 c4 某人去商店買東西,去了 tot totto t 次。每次帶 dij d di j 枚 cij c ci j 硬幣,買 s is i si 的價值的東西。請問每次有多少種付款...
HAOI2008 硬幣購物
時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 題目描述 硬幣購物一共有4種硬幣。面值分別為c1,c2,c3,c4。某人去商店買東西,去了tot次。每次帶di枚ci硬幣,買si的價值的東西。請問每次有多少種付款方...
HAOI2008 硬幣購物
題面在這裡 硬幣購物一共有4種硬幣。面值分別為c1,c2,c3,c4。某人去商店買東西,去了tot次。每次帶di枚ci硬幣,買si的價值的東西。請問每次有多少種付款方法。d i,s le 100000,t le 1000 使用單調佇列優化多重揹包十分開心地獲得了20分的好成績 o 4ts 為什麼我就...