HDU2079 选课时间(题目已修改,注意读题)【母函数】
来源:互联网 发布:程序员考试历年真题 编辑:程序博客网 时间:2024/05/16 14:26
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=2079
题目大意:
给你各种学分的课程数,问:选课凑够N学分的情况有多少种。
给你两个整数N和K,N表示要凑够的学分数。K表示接下来K行,每行为两个整数a和b。
表示学分为a的课程有b们。求出选够N学分的方案数有多少种。
思路:
可以用母函数做,也可以用多重背包来做。这两种做法,感觉实质上没什么区别吧。多重背包
用滚动数组优化一下也是一样的。这里用母函数来解决。这是一道母函数的模板题,关于母函
数,网上有好多资料,就不再描述了。
AC代码:
#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>using namespace std;int A[10];int c1[44],c2[44];int main(){ int T,N,K,a,b; cin >> T; while(T--) { memset(A,0,sizeof(A)); cin >> N >> K; for(int i = 1; i <= K; ++i) { scanf("%d%d",&a,&b); A[a] = b; } for(int i = 0; i <= N; ++i) { c1[i] = 0; c2[i] = 0; } c1[0] = 1; for(int i = 1; i <= K; ++i)//k门课 { for(int j = 0; j <= N; ++j) { for(int k = 0; k <= A[i] && j+k*i <= N; ++k) c2[j+k*i] += c1[j]; } for(int j = 0; j <= N; ++j) { c1[j] = c2[j]; c2[j] = 0; } } cout << c1[N] << endl; } return 0;}
0 0
- HDU2079 选课时间(题目已修改,注意读题)【母函数】
- hdu2079-选课时间(题目已修改,注意读题)
- hdu2079选课时间(题目已修改,注意读题)
- hdu2079选课时间(题目已修改,注意读题)
- 【01背包/母函数】HDU2079选课时间(题目已修改,注意读题)【用背包求解方案数】
- hdu2079 选课时间(题目已修改,注意读题)(多重背包)
- 选课时间(题目已修改,注意读题) + 母函数
- HDOJ 题目2079选课时间(题目已修改,注意读题)(母函数)
- HDOJ 2079 选课时间(题目已修改,注意读题)(母函数模板题)
- 杭电hdu 2079 选课时间(题目已修改,注意读题) 母函数
- hdu 2079 选课时间(题目已修改,注意读题) (母函数)
- HDU 2079 选课时间(题目已修改,注意读题) 基础母函数
- 母函数之选课时间(题目已修改,注意读题) hdoj2079
- hdu-2079-选课时间(题目已修改,注意读题)【母函数】
- 选课时间(题目已修改,注意读题)(杭电2079)(母函数)
- (母函数变形 )hdu 2079 选课时间(题目已修改,注意读题)
- HDU 2079 选课时间(题目已修改,注意读题)【母函数】
- hdu 2079 选课时间(题目已修改,注意读题) (母函数)
- 都没滤网质量重要 细数净化器鸡肋功能
- POJ 1470 Closest Common Ancestors (在线LCA转RMQ)
- Android 打印堆栈的几种方法
- Yii ActiveRecord 简介
- Hadoop示例程序WordCount详解及实例
- HDU2079 选课时间(题目已修改,注意读题)【母函数】
- Django框架里的MVC思想
- 利用.dSYM和.app文件准确定位Crash位置
- Flask mega tutorial 1.0 documentation错误
- 过山车
- 概率计算
- SSL协议详解
- Binary Tree Maximum Path Sum--LeetCode
- Eclipse上GIT插件EGIT使用手册之一_安装EGIT插件