HAOI2008 硬幣購物

2022-09-19 02:42:10 字數 600 閱讀 2063

08年是讓我不淡定的一年。

這題我是完全沒思路。

正解是容斥原理。

1:預處理完全揹包,也就每種硬幣可以使用無限次組成面值 s 的方案數。

2:ans = 總方案 - ( c1 超 + c2 超 + c3 超 + c4 超 ) + ( c1,c2 超 + c2,c3 超 +c3,c4 超 + c1,c4超) - ......

實現起來有用位運算實現的,但是 byvoid 的遞迴實現比較好理解也更清晰一點。

// q.c

// ***

#include#include#include#include#includeusing namespace std;

const int m=100000;

int c[5],d[5],tot,s;

long long f[m+10],ans;

void dfs(int x,int k,int sum)

dfs(x+1,k+1,sum-(d[x]+1)*c[x]); // 第x種硬幣超過限定額度.

dfs(x+1,k,sum);

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