hdu-2079-选课时间(题目已修改,注意读题)【母函数】
2014-08-14 15:16
309 查看
http://acm.hdu.edu.cn/showproblem.php?pid=2079
选课时间(题目已修改,注意读题)
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2878 Accepted Submission(s): 2269
[align=left]Problem Description[/align]
又到了选课的时间了,xhd看着选课表发呆,为了想让下一学期好过点,他想知道学n个学分共有多少组合。你来帮帮他吧。(xhd认为一样学分的课没区别)
[align=left]Input[/align]
输入数据的第一行是一个数据T,表示有T组数据。
每组数据的第一行是两个整数n(1 <= n <= 40),k(1 <= k <= 8)。
接着有k行,每行有两个整数a(1 <= a <= 8),b(1 <= b <= 10),表示学分为a的课有b门。
[align=left]Output[/align]
对于每组输入数据,输出一个整数,表示学n个学分的组合数。
[align=left]Sample Input[/align]
2 2 2 1 2 2 1 40 8 1 1 2 2 3 2 4 2 5 8 6 9 7 6 [code]8 8
[align=left]Sample Output[/align]
2 445 [code]#include<stdio.h> #include<stdlib.h> #include<algorithm> using namespace std; int c1[1000],c2[1000]; struct NODE { int a; //每门课的分值 int b; //相同分值课程的个数 }node[10]; int cmp(NODE A,NODE B) { return A.a<B.a; } int main() { int i,t,j; scanf("%d",&t); while(t--) { memset(node,0,sizeof(node)); int n,k,kk; scanf("%d%d",&n,&kk); for(i=0;i<kk;++i) scanf("%d%d",&node[i].a,&node[i].b); sort(node,node+kk,cmp); memset(c1,0,sizeof(c1)); memset(c2,0,sizeof(c2)); for(i=0;i<=node[0].a*node[0].b&&i<=n;i+=node[0].a) {c1[i]=1;//printf("%d %d#",i,c1[i]); } int p,q,r; for(p=1;p<kk;++p) //因为第一个结构体下标(第一个括号)从零开始,所以第二个括号是p=1,而不是p=2!!!!!!! { for(q=0;q<=n;++q) for(r=0;r+q<=n&&r<=node[p].a*node[p].b;r+=node[p].a) { c2[r+q]+=c1[q];//printf("%d%d**",r+q,c2[r+q]); } for(k=0;k<=n;++k) { c1[k]=c2[k],c2[k]=0; //printf("%d&",c1[k]); } } printf("%d\n",c1 ); }//system("pause"); return 0; }
[/code]
相关文章推荐
- HDU 2079 选课时间(题目已修改,注意读题) 母函数 || 多重背包
- HDU 2079 选课时间(题目已修改,注意读题) [母函数]
- HDU 2079 选课时间(题目已修改,注意读题)(母函数)
- hdu 2079 选课时间(题目已修改,注意读题) (母函数)
- (母函数变形 )hdu 2079 选课时间(题目已修改,注意读题)
- HDU-2079 选课时间(题目已修改,注意读题) -母函数
- HDU 2079 选课时间(题目已修改,注意读题) 基础母函数
- 杭电hdu 2079 选课时间(题目已修改,注意读题) 母函数
- hdu 2079 选课时间(题目已修改,注意读题) (母函数)
- HDU 2079 选课时间(题目已修改,注意读题)(简单的母函数运用)
- hdu 2079 选课时间(题目已修改,注意读题) (母函数)
- hdu 2079 选课时间(题目已修改,注意读题) 母函数
- HDU-2079 选课时间(题目已修改,注意读题)
- hdu 2079 选课时间(题目已修改,注意读题)
- HDOJ 题目2079选课时间(题目已修改,注意读题)(母函数)
- hdu 2079 选课时间(题目已修改,注意读题)
- HDU--杭电--2079--选课时间(题目已修改,注意读题)--背包
- hdu——2079——选课时间(题目已修改,注意读题)
- hdu 2079 选课时间(题目已修改,注意读题)
- hdu 2079 选课时间(题目已修改,注意读题)