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 每次的方法...