題目鏈結
題目大意:共有4種硬幣,面值分別為c1,c2,c3,c4。某人去商店買東西,去了tot次。每次帶di枚ci硬幣,買s的價值的東西。請問每次有多少種付款方法
題解:容斥原理設f
[i]為
不考慮數
量限制時
得到面值
i的方案
數(完全
揹包)
由容斥原理,a
ns=價
值為s時
的方案數
(超過限
制)−∑
(一種硬
幣超過限
制)+∑
(兩種硬
幣超過限
制)−∑
(三種硬
幣超過限
制)……
當硬幣x超過
限制時,
至少使用
了d[x
]+1個
x,於是
總費用減
去(d[
x]+1
)∗c[
x]
一共只有
24种情
況,可以
用dfs
或者二進
制列舉
我的收穫:不太會容斥啊……
#include
#include
#include
#include
#include
#include
using
namespace
std;
int n,s,t,c[5],d[5];
long
long ans,f[100005];
void first()
void dfs(int x,int k,int sum)
dfs(x+1,k+1,sum-(d[x]+1)*c[x]);
dfs(x+1,k,sum);
}void work()
}void init()
int main()
1042 HAOI2008 硬幣購物
time limit 10 sec memory limit 162 mb submit 1534 solved 897 submit status discuss 硬幣購物一共有4種硬幣。面值分別為c1,c2,c3,c4。某人去商店買東西,去了tot次。每次帶di枚ci硬幣,買si的價值的東西。請...
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 每次的方法...