地址

http://acm.hdu.edu.cn/showproblem.php?pid=2079

定位

  • 排列组合问题

  • 母函数

分析

  • 物品种类数 kk,第 ii 行输入:物品价值 v[i]v[i],物品数量 n2[i]n2[i]。

  • 母函数

    g(x)=(1+xv[1]+...+xn2[1]v[1])...(1+xv[i]+...+xn2[i]v[i])...(1+xv[k]+...+xn2[k]]v[k])

    g(x)=(1+x^{v[1]}+...+x^{n2[1]v[1]})...(1+x^{v[i]}+...+x^{n2[i]v[i]})...(1+x^{v[k]}+...+x^{n2[k]]v[k]})

代码

[cpp] view plaincopyprint?
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <string.h>
  4. using namespace std;
  5. int a[1001],b[1001];
  6. int v[9],n1[9],n2[9];
  7. /*************************************************
  8. Function:       GenerateFunc(int N,int P)
  9. Description:    生成函数系数计算
  10. Input:          int N : 相乘的因子个数
  11. int P : 待求的最大指数
  12. Output:         void
  13. Return:         void
  14. Others:         修改的全局变量 a[] b[]
  15. 只读的全局变量 v[] n1[] n2[]
  16. *************************************************/
  17. void GenerateFunc(int N,int P) {
  18. memset(a,0,sizeof(a));
  19. a[0]=1;
  20. for(int i=0; i<N; i++) {
  21. memset(b,0,sizeof(b));
  22. for(int j=n1[i]; j<=n2[i]&&j*v[i]<=P; j++) {
  23. for(int k=0; k+j*v[i]<=P; k++) {
  24. b[k+j*v[i]]+=a[k];
  25. }
  26. }
  27. memcpy(a,b,sizeof(b));
  28. }
  29. }
  30. int main() {
  31. int T;
  32. memset(n1,0,sizeof(n1));
  33. scanf(”%d”,&T);
  34. while(T–) {
  35. int n,k;
  36. scanf(”%d %d”,&n,&k);
  37. for(int i=0; i<k; i++) {
  38. scanf(”%d %d”,&v[i],&n2[i]);
  39. }
  40. GenerateFunc(k,n);
  41. printf(”%d\n”,a[n]);
  42. }
  43. }

性能

Exe.Time Exe.Memory Code Length Language
15MS 1872K 1168B c++

hdu 2079 - 选课时间相关推荐

  1. HDU 2079 选课时间

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  10. hdu 2078 复习时间

    复习时间 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

最新文章

  1. python翻译成计算机是啥_基于Python的业英语翻译器实现
  2. 自然语言处理综述_自然语言处理
  3. javascript --- [小练习]变量提升、优先级综合
  4. 在OpenShift上托管的WildFly实例上进行Arquillian测试
  5. 微信小程序 设置背景占满整个页面
  6. html新增伪类,css3新增伪类有哪些
  7. android webview js交互 第一节 (java和js交互)
  8. 智能家居简单实现---使用ESP8266简单实现和APP通讯
  9. java获取资源文件的各种方法
  10. PSD分层可临摹模板|无线端电商页面UI设计几个常见的错误
  11. 实验4-1-8 求给定精度的简单交错序列部分和 (15 分)
  12. 饥荒中皮弗娄牛神龛献祭什么拿什么供奉
  13. golang 实现http mock server
  14. Video.js使用教程一(详解)
  15. 关闭计算机安全模式,怎么关闭安全模式,bios安全启动模式
  16. 【B站】陈睿:令人刮目相看的年轻一代
  17. 50首经典好听的英文歌曲!
  18. 微型计算机 2018 12月下,桌面CPU天梯图2018年12月最新版 十二月台式电脑处理器排名...
  19. 魔戒世界服务器维护,我的世界魔戒 The Lord of the Rings 服务器1.7.10
  20. P2P 应用程序框架

热门文章

  1. 解决:远程服务器(阿里云 VHost)和本地文件传输 windows
  2. 赛迪中国ECM市场报告解读一:市场需求在2023年将达到275亿元
  3. 【axios】get和post请求用法
  4. 个人网站建设专业定制,个人网站建设怎么做
  5. 【黑帽SEO系列】网页劫持
  6. 使用电脑风扇控制软件Macs Fan Control Pro更好的管理电风扇
  7. MySQL查看索引和数据所占内存
  8. 第二章 需求分析与需求文档
  9. 微信小程序audio的简单实用
  10. 颜色的RGB数字表示方法