HAOI2008 硬幣購物

2022-09-18 11:18:15 字數 856 閱讀 7460

· 假設此時已求出標準完全揹包,用$f[j]$表示。

· 本題關鍵在於,由於有個數限制,那麼可以強制令當前狀態不滿足限制,即若最多取$h**e[i]$個,強制令其先取$h**e[i] + 1$個,那麼減去$f[s - (h**e[i] + 1)]$即可,當然需用容斥原理來進行加減。

· **:

1 #include 2 #include 3 #include 4

5using

namespace

std;

67 typedef long

long

ll;8

9const

int maxn = 4 + 5;10

const

int maxv = 1e05 + 10;11

12 ll f[maxv]= ;

1314

const

int n = 4;15

16int

w[maxn];

17int

h**e[maxn];

1819

intt;

2021

void

preparation ()

2728

intmain ()

5556 printf ("

%lld\n

", ans);57}

5859

return0;

60}6162

/*63

1 2 5 10 2

643 2 3 1 10

651000 2 2 2 900

66*/

view code

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 種硬幣。面值分別為 c 1,c 2,c 3,c 4 某人去商店買東西,去了 tot 次。每次帶 d i 枚 c i 硬幣,買 s i 的價值的東西。請問每次有多少種付款方法。好的,比較欣喜的一點是我們如果不考慮什麼帶了 k i 個,那麼其實就是乙個完全揹包是不是 但是他有乙個特別...