题目名称 302. [HAOI 2008]硬币购物
输入输出 coin.in/out
难度等级 ★★★
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 10
题目来源 Gravatar苏轼 于2009-03-20加入
开放分组 全部用户
提交状态
分类标签
数学 HAOI 动态规划 容斥原理
分享题解
通过:92, 提交:150, 通过率:61.33%
Gravatar神利·代目 100 0.000 s 0.00 MiB C++
GravatarHZOI_蒟蒻一只 100 0.000 s 0.00 MiB C++
Gravatarfather 100 0.000 s 0.00 MiB C++
Gravatarサイタマ 100 0.000 s 0.00 MiB C++
GravatarSamle 100 0.000 s 0.00 MiB C++
GravatarYoungsc 100 0.000 s 0.00 MiB C++
GravatarSKG_G 100 0.000 s 0.00 MiB C++
Gravataryrtiop 100 0.000 s 0.00 MiB C++
Gravatarrewine 100 0.016 s 1.08 MiB C++
GravatarAsm.Def 100 0.016 s 5.82 MiB C++
本题关联比赛
专项训练十题
2022级数学专题练习赛10
关于 硬币购物 的近10条评论(全部评论)
有趣的容斥
GravatarHale
2019-07-24 08:18 5楼
写的debug竟然忘了注释掉……
GravatarShirry
2017-10-24 12:01 4楼
熬夜太多脑子不行了……连题解给出的证明都得理解半天= =
GravatarAsm.Def
2015-06-16 19:51 3楼
我居然连这题都没写……
Gravatarcstdio
2014-10-17 14:52 2楼
回复 @TCtower :
ORZZZZZZZZZZZZZZZZZZZ
GravatarEzio
2014-10-09 19:36 1楼

302. [HAOI 2008]硬币购物

★★★   输入文件:coin.in   输出文件:coin.out   简单对比
时间限制:1 s   内存限制:128 MiB

【问题描述】

一共有 $4$ 种硬币,面值分别为 $c1,c2,c3,c4$。阿Q带着一些硬币去商店买东西,他带了 $d1$ 枚第一种硬币,$d2$ 枚第二种硬币,$d3$ 枚第三种硬币,$d4$ 枚第四种硬币,若想买一个价值为 $s$ 的东西,问阿Q有多少种付coins的方法。

比如 $c=\{1,2,5,10\},d=\{3,2,3,1\},s=10$,一共有 $4$ 种方法:

$\begin{cases}10=1+1+1+2+5\\10=1+2+2+5\\10=5+5\\10=10\end{cases}$

注意,阿 $Q$ 可能会去很多次商店,每次带的硬币数量和要买的东西价值可能不一样,你需要对每次都求出方法总数。

【数据输入】

输入文件的第一行是 $5$ 个整数,$c1,c2,c3,c4,tot$ 分别表示 $4$ 种硬币的面值和阿 $Q$ 去商店的次数,下面 $tot$ 行,每行 $5$ 个非负整数 $d1,d2,d3,d4,s$。

【数据输出】

输出有 $tot$ 行,表示第 $i$ 次付 $coins$ 的方法总数,保证答案在 $int64/long$ $long$ 范围内。

【输入样例】

1 2 5 10 2
3 2 3 1 10
1000 2 2 2 900

【输出样例】

4
27

【数据范围】

($1$)$30\%$ 的数据,$tot \le 50$;

($2$)$100\%$ 的数据,$tot \le 1000,d1,d2,d3,d4,s\le 100,000$。