杭电ACM hdu 2079 选课时间 (模板)
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 选课时间 (模板)相关推荐
- HDU 2079 选课时间
http://acm.hdu.edu.cn/showproblem.php?pid=2079 Problem Description 又到了选课的时间了,xhd看着选课表发呆,为了想让下一学期好过点, ...
- HDU 2079 选课时间(题目已修改,注意读题) 母函数 || 多重背包
今天做这题才知道原来母函数的原型不是从第二个括号开始,那不过是优化而已,除了1^n,2^n那种类型可以从2开始外其他都要从1开始.好了,上代码吧. #include<stdio.h> in ...
- 杭电ACM题目类型整理
版权声明:(╯3╰) 转载请注明: http://blog.csdn.net/bat67 杭电acm题目分类版本1 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 10 ...
- 【杭电ACM】1097 A hard puzzle
[杭电ACM]1097 A hard puzzle http://acm.hdu.edu.cn/showproblem.php?pid=1097 先用int手写了算法结果竟然wrong answer ...
- 杭电ACM刷题(1):1002,A + B Problem II
最近忙于考试复习,没有多少可供自己安排的时间,所以我利用复习之余的空闲时间去刷刷杭电acm的题目,也当对自己编程能力的锻炼吧. Problem Description I have a very si ...
- 杭电ACM(HDUOJ)试题分类
杭电ACM试题分类 第一篇 1001 这个就不用说了吧 1002 简单的大数 1003 DP经典问题,最 ...
- 杭电acm第2304题答案c语言,【转】杭电ACM试题分类
注:网上搜的 第一篇 1001 这个就不用说了吧 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 1005 找规律(循环点) 1006 感觉有点BT的题,我到现在还没过 ...
- 杭电acm2151题java的解法,杭电ACM题型分类
杭电ACM题型分类 基础题:1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029.1032.1037.1040.1048.1 ...
- 杭电acm a+b问题
杭电acm 1000 a+b问题代码 int main() { int a,b; for(;~scanf("%d%d",&a,&b);printf("%d ...
最新文章
- 用于手语识别的自注意力机制
- 在互联网公司说女生备孕,就像跟你女朋友说你不行一个性质!
- 一个由印度人编写的VC串口类
- Ubuntu 安装LAMP ...
- 一行python代码值多少钱_一行python代码
- fd在python什么意思_python用法总结
- Vue项目安装axios报错
- SIFT算法学习总结
- QQ浏览器该站点长时间无响应_消除CNZZ.站长统计代码被Chrome浏览器警告的操作...
- 新团队团队融合研讨会_新的网络研讨会:如何避免持续交付的隐性成本
- Latex入门篇之论文排版
- 自定义Toast、程序退出时Toast也退出、Toast的用法
- Nginx 代理本地文件
- java学习笔记-第八章:面向对象编程(中级部分)
- 基于ESXi的软路由(LEDE)与黑群晖的安装与配置
- 【C语言】按要求输出矩阵。
- 3DAssets 获取网站
- python缩写月份单词_Python替换月份为英文缩写的实现方法
- Jmeter自定义函数
- nginx转发mysql连接
热门文章
- 从零开始创建react项目的三种方法(转)
- python加载csv文件去重_用python读写和处理csv文件
- doxygen 无法生成图片_设计稿智能生成代码如何识别组件?Imgcook 3.0 解析
- docker安装部署和常用命令
- ztree实现节点事件
- 阿里云天池 Docker练习场(入门赛) 操作步骤
- 轻量级服务器与云服务器的区别
- keras库的安装及使用,以全连接层和手写数字识别MNIST为例
- php mysqli查询实例,php mysqli查询语句返回值类型实例分析
- python设置http代理_python中设置HTTP代理的方法