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

Author
xhd
 
Source
ACM程序设计期末考试_热身赛(感谢 xhd & 8600)

---------------------
n是要获得的目的学分,K是可以获得单门学分的最高值

#include <iostream>
#include <cstring>
using namespace std;
#define min(a,b) ((a)<(b)?(a):(b))
int T,N,K,n[8],v[8],a[42],b[42],i,j,k,last,last2;//用一个last变量记录目前最大的指数
int main()
{cin>>T;while ((T--)!=0){cin>>N>>K;for (i=0;i<K;i++)cin>>v[i]>>n[i];//v[i]是存储不同课程的学分值,n[i]是储存每个学分对几个课程(每个学分可以使用的次数)a[0]=1;last=0;for (i=0;i<K;i++){last2=min(last+n[i]*v[i],N);//计算下一个lastmemset(b,0,sizeof(int)*(last2+1));for (j=0;j<=n[i]&&j*v[i]<=last2;j++)for (k=0;k<=last&&k+j*v[i]<=last2;k++)b[k+j*v[i]]+=a[k];memcpy(a,b,sizeof(int)*(last2+1));last=last2;}cout<<a[N]<<endl;}return 0;
}

转载于:https://www.cnblogs.com/-citywall123/p/9915255.html

杭电ACM hdu 2079 选课时间 (模板)相关推荐

  1. HDU 2079 选课时间

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

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

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

  3. 杭电ACM题目类型整理

    版权声明:(╯3╰) 转载请注明: http://blog.csdn.net/bat67 杭电acm题目分类版本1 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 10 ...

  4. 【杭电ACM】1097 A hard puzzle

    [杭电ACM]1097  A hard puzzle http://acm.hdu.edu.cn/showproblem.php?pid=1097 先用int手写了算法结果竟然wrong answer ...

  5. 杭电ACM刷题(1):1002,A + B Problem II

    最近忙于考试复习,没有多少可供自己安排的时间,所以我利用复习之余的空闲时间去刷刷杭电acm的题目,也当对自己编程能力的锻炼吧. Problem Description I have a very si ...

  6. 杭电ACM(HDUOJ)试题分类

    杭电ACM试题分类 第一篇 1001 这个就不用说了吧                      1002 简单的大数                            1003 DP经典问题,最 ...

  7. 杭电acm第2304题答案c语言,【转】杭电ACM试题分类

    注:网上搜的 第一篇 1001 这个就不用说了吧 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 1005 找规律(循环点) 1006 感觉有点BT的题,我到现在还没过 ...

  8. 杭电acm2151题java的解法,杭电ACM题型分类

    杭电ACM题型分类 基础题:1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029.1032.1037.1040.1048.1 ...

  9. 杭电acm a+b问题

    杭电acm 1000 a+b问题代码 int main() { int a,b; for(;~scanf("%d%d",&a,&b);printf("%d ...

最新文章

  1. 用于手语识别的自注意力机制
  2. 在互联网公司说女生备孕,就像跟你女朋友说你不行一个性质!
  3. 一个由印度人编写的VC串口类
  4. Ubuntu 安装LAMP ...
  5. 一行python代码值多少钱_一行python代码
  6. fd在python什么意思_python用法总结
  7. Vue项目安装axios报错
  8. SIFT算法学习总结
  9. QQ浏览器该站点长时间无响应_消除CNZZ.站长统计代码被Chrome浏览器警告的操作...
  10. 新团队团队融合研讨会_新的网络研讨会:如何避免持续交付的隐性成本
  11. Latex入门篇之论文排版
  12. 自定义Toast、程序退出时Toast也退出、Toast的用法
  13. Nginx 代理本地文件
  14. java学习笔记-第八章:面向对象编程(中级部分)
  15. 基于ESXi的软路由(LEDE)与黑群晖的安装与配置
  16. 【C语言】按要求输出矩阵。
  17. 3DAssets 获取网站
  18. python缩写月份单词_Python替换月份为英文缩写的实现方法
  19. Jmeter自定义函数
  20. nginx转发mysql连接

热门文章

  1. 从零开始创建react项目的三种方法(转)
  2. python加载csv文件去重_用python读写和处理csv文件
  3. doxygen 无法生成图片_设计稿智能生成代码如何识别组件?Imgcook 3.0 解析
  4. docker安装部署和常用命令
  5. ztree实现节点事件
  6. 阿里云天池 Docker练习场(入门赛) 操作步骤
  7. 轻量级服务器与云服务器的区别
  8. keras库的安装及使用,以全连接层和手写数字识别MNIST为例
  9. php mysqli查询实例,php mysqli查询语句返回值类型实例分析
  10. python设置http代理_python中设置HTTP代理的方法