1042 HAOI2008 硬幣購物

2021-08-06 06:38:37 字數 1030 閱讀 1602

題目鏈結

題目大意:共有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 每次的方法...