选课时间(题目已修改,注意读题)

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1865    Accepted Submission(s): 1501

Problem Description
又到了选课的时间了,xhd看着选课表发呆,为了想让下一学期好过点,他想知道学n个学分共有多少组合。你来帮帮他吧。(xhd认为一样学分的课没区别)
Input
输入数据的第一行是一个数据T,表示有T组数据。
每组数据的第一行是两个整数n(1 <= n <= 40),k(1 <= k <= 8)。
接着有k行,每行有两个整数a(1 <= a <= 8),b(1 <= b <= 10),表示学分为a的课有b门。
Output
对于每组输入数据,输出一个整数,表示学n个学分的组合数。
Sample Input
2 2 2 1 2 2 1 40 8 1 1 2 2 3 2 4 2 5 8 6 9 7 6 8 8
Sample Output
2 445

母函数的题目:

以硬币模型来比较,这道题目的特别之处在于给定了 特殊的硬币和特殊的数量

#include <iostream>
#include <stdio.h>
#include <string.h>
#define MAX 50
using namespace std;int main()
{int a[MAX],b[MAX],k,n,i,j,h;int T;int data[10],count[10];  //学分,和对应学分的 数量 保存在一个数组里边scanf("%d",&T);while(T--){scanf("%d%d",&n,&k);for(i=1; i<=k; i++){scanf("%d%d",&data[i],&count[i]);}memset(a,0,sizeof(a));memset(b,0,sizeof(b));a[0] = 1;for(i=1; i<=k; i++){for(j=0; j <= n; j++){for(h=0; h<=count[i] && data[i]*h+j<=n; h++)    //条件是对应的硬币数目不能超,总金额不能超
                {b[data[i]*h+j] += a[j];}}memcpy(a,b,sizeof(a));memset(b,0,sizeof(b));}printf("%d\n",a[n]);}return 0;
}

HDU 2079 选课时间(母函数)相关推荐

  1. HDU 2079 选课时间(题目已修改,注意读题) 母函数 || 多重背包

    今天做这题才知道原来母函数的原型不是从第二个括号开始,那不过是优化而已,除了1^n,2^n那种类型可以从2开始外其他都要从1开始.好了,上代码吧. #include<stdio.h> in ...

  2. HDU 2079 选课时间

    http://acm.hdu.edu.cn/showproblem.php?pid=2079 Problem Description 又到了选课的时间了,xhd看着选课表发呆,为了想让下一学期好过点, ...

  3. 杭电ACM hdu 2079 选课时间 (模板)

    Problem Description 又到了选课的时间了,xhd看着选课表发呆,为了想让下一学期好过点,他想知道学n个学分共有多少组合.你来帮帮他吧.(xhd认为一样学分的课没区别)   Input ...

  4. HDU 2152 选课时间(题目已修改,注意读题) (母函数)

    选课时间(题目已修改,注意读题) Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  5. 【hdoj_2079】选课时间(母函数)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=2079 此题采用母函数的知识求解,套用母函数模板即可: http://blog.csdn.net/ten_s ...

  6. 母函数+例题(hdu 2079+hdu 2082)

    母函数+例题(hdu 2079+hdu 2082) 虽然ACM的确有点力不从心,但是还是贵在坚持,继续啃啃算法..... 昨天一个下午学了学母函数,离散数学+幂级数,只能说nb- 看了半天的原理,结果 ...

  7. HDU-2079 选课时间(题目已修改,注意读题) -母函数

    选课时间(题目已修改,注意读题) Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  8. HDU2079 选课时间【母函数】

    选课时间 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submissi ...

  9. HDU 2079-课程时间(生成函数)

    课程时间(标题已被修改,注意阅读题) Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  10. hdu 2082 找单词(母函数)

    Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission ...

最新文章

  1. SQL Server 2008 安装问题
  2. 对产品经理而言,有一种灾难叫“老板说”
  3. 表弟:这数学规律题该怎么解决呢?使用Python你会发现很简单
  4. black:你的Python代码有点丑
  5. NBMA网络帧中继交换机配置
  6. python中使用matplotlib问题
  7. callback回调使用 vue_Vue实现剪切板图片压缩
  8. vue学习项目之去哪儿网笔记
  9. 【天锐绿盾】之常见问题处理:控制台登录提示采集服务器空间不足,修改数据保存时间
  10. 网课python程序设计答案_中国大学MOOCPython程序设计网课答案
  11. 大众点评霸王餐自动报名autojs(更新版)
  12. c语言vt指令,VT系列一:VT简述
  13. salesforce chatter提醒带Mention(即@)
  14. 中文数字与阿拉伯数字转换(Python)
  15. HDFS High Availability(HA)高可用、单点故障、主备集群、脑裂问题、数据同步问题、HDFS HA解决方案—QJM
  16. 院士大牛们一年N篇7点以上SCI的诀窍
  17. QQ小程序——无法正常创建项目与uniapp联动问题
  18. jdbc:mysql://localhost:3306/webshopping?useUnicode=trueamp;characterEncoding=UTF-8
  19. Oracle数据库的冷备份和热备份
  20. 基于SSM考试在线报名管理系统

热门文章

  1. java 注解处理器的作用_JVM进阶 -- 浅谈注解处理器
  2. android音频杂音问题_如何消除音频中的噪声?用这个简单好用的音频剪辑软件就够了...
  3. 华为手机解锁码计算工具_手机计算器全线阵亡?小编实测苹果、华为、三星……...
  4. em gmm matlab,EM方法解高斯混合模型(GMM)Matlab实现
  5. Vue.js学习笔记: 数据绑定语法---绑定表达式
  6. 特朗普“能源独立”政策效果存疑
  7. libvirt API管理hypervisors
  8. “运营商不能沦为管道”是一个错误的理论
  9. redhat linux 中用锐捷客服端实现上网
  10. 【java与移动智能设备】高级用户组件