美文网首页
[46无验证]拼硬币-字节跳动2018秋

[46无验证]拼硬币-字节跳动2018秋

作者: jdzhangxin | 来源:发表于2018-11-08 19:52 被阅读57次

1.题目描述

现有n1+n2种面值的硬币,其中前n1种为普通币,可以取任意枚,后n2种为纪念币,每种最多只能取一枚,每种硬币有一个面值,问能用多少种方法拼出m的面值?

  • 输入描述:
    第一行三个整数n1,n2,m,分别表示普通币种类数,纪念币种类数和目标面值
    第二行n1个整数,第i种普通币的面值a[i]。保证a[i]为严格升序。
    第三行n2个整数,第i种纪念币的面值b[i]。保证b[i]为严格升序。
    对于30%的测试,保证1<=n1+n2<=10,1<=m<=100,1<=a[i]<=100,1<=b[i]<=100
    对于100%的测试,保证1<=n1+n2<=100,1<=m<=100000,1<=a[i]<=100000,1<=b[i]<=100000输出描述:
    输出一行,包含一个数字x,表示方法总数对1000000007(1e9+7)取模的结果。
  • 注意:不要忘记取模!
  • 备注:
    两个方法,它们任意一种或以上的硬币数量不同,则认为是两种拼法。
  • 输入示例:
    3 1 5
    1 2 3
    1
    
  • 输出示例:
    9
    
  • 说明:
    (x)代表面值为x的普通币,[x]代表面值为x的纪念币,样例所有方法数如下:
    (1)(1)(1)(1)(1)
    (1)(1)(1)(2)
    (1)(1)(3)
    (1)(2)(2)
    (2)(3)
    (1)(1)(1)(1)[1]
    (1)(1)[1](2)
    (1)[1](3)
    [1](2)(2)

2.题目解析

典型的背包问题,普通币是完全背包问题,纪念币是0/1背包问题。
普通币与纪念币选择是相互独立的,所以计算两者总计方法数使用加法原理。

3.参考答案

相关文章

网友评论

      本文标题:[46无验证]拼硬币-字节跳动2018秋

      本文链接:https://www.haomeiwen.com/subject/vnlwoftx.html