小Q的歌单

【题目描述】小 Q 有 X 首长度为 A 的不同的歌和 Y 首长度为 B 的不同的歌,现在小 Q 想用这些歌组成一个
总长度正好为 K 的歌单,每首歌最多只能在歌单中出现一次,在不考虑歌单内歌曲的先后顺序的情况下,
请问有多少种组成歌单的方法。
输入描述:
每个输入包含一个测试用例。
每个测试用例的第一行包含一个整数,表示歌单的总长度 K(1<=K<=1000)。
接下来的一行包含四个正整数,分别表示歌的第一种长度 A(A<=10)和数量 X(X<=100)以及歌的第二种长度
B(B<=10)和数量 Y(Y<=100)。保证 A 不等于 B。
输出描述:
输出一个整数,表示组成歌单的方法取模。因为答案可能会很大,输出对 1000000007 取模的结果。
输入示例:
5
2 3 3 3
输出示例:
9

解题思路:
1)歌单存在时要满足的条件
i * a <= k && (k - a * i) % b == 0 && (k - a * i) / b <= y
2)需要用得到的公式:
从i个不同元素中,选择j个的组合数目,记为c[i][j],则满足
c[i][j] = (c[i - 1][j - 1] + c[i - 1][j])

代码

#include <stdio.h>
#include<stdlib.h>  //system()using namespace std;
long long c[105][105];
const int mod = 1000000007;
void init() {c[0][0] = 1;for (int i = 1; i <= 100; i++) {c[i][0] = 1;for (int j = 1; j <= 100; j++)c[i][j] = (c[i - 1][j - 1] + c[i - 1][j]) % mod;}
}
int main() {int k, a, b, x, y;long long ans = 0;init();scanf_s("%d", &k);scanf_s("%d%d%d%d", &a, &x, &b, &y);for (int i = 0; i <= x; i++) {if (i * a <= k && (k - a * i) % b == 0 && (k - a * i) / b <= y)ans = (ans + (c[x][i] * c[y][(k - a * i) / b]) % mod) % mod;}printf("%lld\n", ans);system("pause");return 0;
}

注:参考了牛客网解答。

腾讯2018秋招笔试真题-小Q的歌单相关推荐

  1. 腾讯2018秋招笔试真题(1)

    腾讯2018秋招笔试真题 小Q的歌单 [题目描述]小 Q 有 X 首长度为 A 的不同的歌和 Y 首长度为 B 的不同的歌,现在小 Q 想用这些歌组成一个 总长度正好为 K 的歌单,每首歌最多只能在歌 ...

  2. 腾讯2018秋招笔试真题(2)

    腾讯2018秋招笔试真题 3.画家小Q [题目描述]画家小 Q 又开始他的艺术创作.小 Q 拿出了一块有 NxM 像素格的画板, 画板初始状态是空白 的,用'X'表示. 小 Q 有他独特的绘画技巧,每 ...

  3. 腾讯2018秋招笔试真题——安排机器

    本文参考自腾讯2018秋招笔试真题--安排机器 查看原文: 原文地址 题目描述:小Q的公司最近接到m个任务,第i个任务需要Xi的时间去完成,难度等级为yi.                 小Q拥有n ...

  4. 腾讯2019秋招笔试真题

    1.小Q爬塔 描述:小Q正在攀登一座宝塔,这座塔很特别,塔总共有n曾层,但是没两层之间的净高却不相同,所以造成了小Q爬过每层的时间也不同.如果某一层的高度为x,那么爬过这一层锁需的还是件也是x.小Q孩 ...

  5. 腾讯2019秋招笔试真题 1.小Q爬塔 2.妞妞的问题

    1.小Q爬塔 [问题描述]小Q正在攀爬一座宝塔,这座宝塔很特别,塔总共有n层,但是两层之间的净高却不相同,所以造成小Q爬过每层的时间也不同.如果某一次高度为x,那么爬过这一层所需时间也就是x.小Q还会 ...

  6. 【笔试题】京东2017秋招笔试真题

    笔试题 京东2017秋招笔试真题 1.进制均值 时间限制 C/C++语言 1000MS;其他语言 3000MS 内存限制 C/C++语言 65536KB;其他语言 589824KB 题目描述 尽管是一 ...

  7. 滴滴出行2017秋招笔试真题-编程题汇总_Java实现

    滴滴出行2017秋招笔试真题-编程题汇总_Java实现 注:有的题参考别人的思路,用我最容易理解的代码编的程序,所以可以不能最优的解法,后续我会进行更新,只是一个思路,我的笔记而已,所以不喜勿喷~~~ ...

  8. 2018深信服拼多多秋招笔试真题

    网易互娱 处理条件1: 处理5: 处理3,4的同时处理2: 对最后两个字符处理2. 对第3.4个条件的处理: judgeDengcha(int a,b,c){//对第3个条件的处理: if a,b,c ...

  9. 2018年网易秋招笔试真题——游历魔法王国

    链接:https://www.nowcoder.com/questionTerminal/923b9dacf8544e4e83d5e22f5a0e731a 来源:牛客网 魔法王国一共有n个城市,编号为 ...

最新文章

  1. python免费入门教程-python小白如何入门,第一步要做什么?(附带免费教程)
  2. mysql 累计值_mysql 累计值计算
  3. vue2.0 创建项目
  4. 服务器系统防火墙例外,Windows Server 2012设置端口例外、防火墙设置方法
  5. 【巷子】---vue基于mint-ui三级联动---【vue】
  6. 为应用“瘦身”!给 Android 应用开发者的十个建议(转)
  7. App Store 扣费 知识产权 备忘
  8. android 获取图片主色调
  9. Web后端学习笔记 Flask(7)数据库
  10. smarty一维数组的引用
  11. mysql 导入1045错误_解决MyQL数据库中1045错误的方法——Windows系统
  12. 领域驱动设计的个人理解
  13. html页面打开前判断session,js判断session过期
  14. 华为手机序列号前三位_华为手机序列号怎么查询?
  15. 厦门市大专计算机学校有哪些,2021厦门公办大专学校有哪些 【教育部专科院校名单】...
  16. winform自定义日历控件
  17. 烟雨江南暂排第一,第四届橙瓜网络文学奖入围20年十佳奇幻大神
  18. Chrome浏览器语音自动播放功能
  19. 20200528 前端开发日报
  20. java实训报告心得体会,看这一篇就够了!

热门文章

  1. C++基础学习-33模板全特化、偏特化(局部特化)
  2. excel 单元格显示公式_如何在单元格中显示公式并在Excel 2013中完全隐藏公式
  3. gee学习2数据获取、数据筛选、创建地理要素
  4. 谈谈我做技术经理的经验和教训
  5. Ubuntu18.04设置截屏快捷方式
  6. 【chromeEdge不兼容openModalDialog弹出模态窗口window.showModalDialog解决办法】
  7. QAndroidJniObject::callStaticObjectMethod参数含义
  8. C语言基础题集(课前:一维数组,二维数组)
  9. 如果字符串是科学:如123213e21,转化为字符串
  10. 游戏角色3d建模用什么软件