1042 HAOI2008 硬幣購物

2021-07-06 03:30:35 字數 1034 閱讀 3668

time limit: 10 sec  

memory limit: 162 mb

submit: 1534  

solved: 897 [

submit][

status][

discuss]

硬幣購物一共有4種硬幣。面值分別為c1,c2,c3,c4。某人去商店買東西,去了tot次。每次帶di枚ci硬幣,買si的價值的東西。請問每次有多少種付款方法。

第一行 c1,c2,c3,c4,tot 下面tot行 d1,d2,d3,d4,s

每次的方法數

1 2 5 10 2

3 2 3 1 10

1000 2 2 2 900427

資料規模

di,s<=100000

tot<=1000

容斥原理呀!(苟蒻根本不會數學)

設f[i]為硬幣數任意,湊齊i元方案數。。。

所以s元方案數 = f[s] - 使用c1超額方案數 - 使用c2超額方案數 - ... + 使用c1c2超額方案數 +...-使用c1c2c3超額方案數 - ...+使用c1c2c3c4超額方案數

#include#includeusing namespace std;

const int maxn = 1e5 + 10;

typedef long long ll;

ll f[maxn],d[4],c[4],m,n,ans;

int i,j;

void dfs(int k,int tot,ll sum)

return;

}dfs(k + 1,tot,sum);

dfs(k + 1,tot + 1,sum + 1ll*(d[k] + 1) * c[k]);}

int main()

return 0;

}

1042 HAOI2008 硬幣購物

題目鏈結 題目大意 共有4種硬幣,面值分別為c1,c2,c3,c4。某人去商店買東西,去了tot次。每次帶di枚ci硬幣,買s的價值的東西。請問每次有多少種付款方法 題解 容斥原理設f i 為 不考慮數 量限制時 得到面值 i的方案 數 完全 揹包 由容斥原理,a ns 價 值為s時 的方案數 超過...

1042 HAOI2008 硬幣購物

硬幣購物一共有4種硬幣。面值分別為c1,c2,c3,c4。某人去商店買東西,去了tot次。每次帶di枚ci硬幣,買s i的價值的東西。請問每次有多少種付款方法。第一行 c1,c2,c3,c4,tot 下面tot行 d1,d2,d3,d4,s,其中di,s 100000,tot 1000 每次的方法數...

BZOJ1042 HAOI2008 硬幣購物

description 硬幣購物一共有4種硬幣。面值分別為c1,c2,c3,c4。某人去商店買東西,去了tot次。每次帶di枚ci硬幣,買si的價值的東西。請問每次有多少種付款方法。input 第一行 c1,c2,c3,c4,tot 下面tot行 d1,d2,d3,d4,s output 每次的方法...