首页 > 试题广场 >

称砝码

[编程题]称砝码
  • 热度指数:209026 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
\hspace{15pt}对于给定的 n 种砝码,重量互不相等,依次为 m_1, m_2, \dots, m_n ,数量依次为 x_1, x_2, \dots, x_n
\hspace{15pt}现在要用这些砝码去称物体的重量(放在同一侧),问能称出多少种不同的重量。特别地,称重重量包括 0

输入描述:
\hspace{15pt}第一行输入一个整数 n \left(1 \leqq n \leqq 10\right) 代表砝码的个数。
\hspace{15pt}第二行输入 n 个整数 m_1, m_2, \dots, m_n \left(1 \leqq m_i \leqq 2000\right) 代表每种砝码的重量。
\hspace{15pt}第三行输入 n 个整数 x_1, x_2, \dots, x_n \left(1 \leqq x_i \leqq 10\right) 代表每种砝码的数量。


输出描述:
\hspace{15pt}输出一个整数,代表利用给定的砝码可以称出的不同的重量数。
示例1

输入

2
1 2
2 1

输出

5

说明

\hspace{15pt}在这个样例中,有 2 个重量为 1 的砝码,1 个重量为 2 的砝码。称重方式如下:
\hspace{23pt}\bullet\,不放砝码,称重重量为 0
\hspace{23pt}\bullet\,1 个重量为 1 的砝码,称重重量为 1
\hspace{23pt}\bullet\,2 个重量为 1 的砝码,称重重量为 2
\hspace{23pt}\bullet\,1 个重量为 1 的砝码、1 个重量为 2 的砝码,称重重量为 3
\hspace{23pt}\bullet\,2 个重量为 1 的砝码、1 个重量为 2 的砝码,称重重量为 4
\hspace{15pt}因此,能称出的不同重量有 5 种,分别是 0, 1, 2, 3, 4

这道题你会答吗?花几分钟告诉大家答案吧!