HDU ACM 11 2079 选课时间 母函数或者DP
来源:互联网 发布:上海优越感知乎 编辑:程序博客网 时间:2024/05/22 03:17
母函数
#include <iostream>#include <algorithm>int Lu[1000], Hui[1000];using namespace std;int main(){int T;cin >> T;int n, m;int Yi[1000], Zheng[10000];while (T--){cin >> n >> m;for (int i = 1; i <= m; i++)cin >> Yi[i] >> Zheng[i];memset(Lu, 0, sizeof(Lu));for (int i = 0, t = 0; i <= n && t <= Zheng[1]; i += Yi[1], t++)Lu[i] = 1;for (int i = 0; i <= n; i++)Hui[i] = 0;for (int i = 2; i <= m; i++){for (int j = 0; j <= n; j++)for (int k = 0, t = 0; j + k <= n && t <= Zheng[i]; k += Yi[i], t++)Hui[j + k] = Lu[j] + Hui[j + k];for (int j = 0; j <= n; j++){Lu[j] = Hui[j];Hui[j] = 0;}}cout << Lu[n] << endl;}return 0;}
DP。DP我不会。再练一段时间回来看吧
#include<stdio.h>//可以说是01背包+多重背包#include<string.h>int main(){ int T,n,m,i,j,k; int a[10],num[10],dp[45]; scanf("%d",&T); while(T--) { scanf("%d%d",&n,&m); for(i=1;i<=m;i++) scanf("%d%d",&a[i],&num[i]); for(i=1;i<=n;i++) dp[i]=0; dp[0]=1; for(i=1;i<=m;i++) for(j=n;j>=a[i];j--) for(k=1;k<=num[i]&&(j-a[i]*k)>=0;k++)//这个for循环用于避免重复,设置很巧妙,想了很久啊 dp[j]=dp[j]+dp[j-a[i]*k];//就是把一个物品的每种情况都装进容量固定的包里,这里就会避免重复 printf("%d\n",dp[n]); } return 0;}
0 0
- HDU ACM 11 2079 选课时间 母函数或者DP
- [ACM] hdu 2079 选课时间(普通型母函数)
- HDU/HDOJ 2079 母函数 选课时间
- HDU 2079 选课时间 母函数
- hdu 2079 选课时间_母函数
- Hdu 2079 选课时间 母函数
- hdu 2079 选课时间(母函数)
- HDU 2079-选课时间(母函数)
- HDU 2079 选课时间 (母函数)
- 杭电ACM hdu 2079 选课时间 解题报告(母函数)
- HDU 杭电acm 2079-选课时间
- hdu 2079 选课时间 DP动态规划 母函数 穷举 寒假集训1 07
- HDU 2079 选课时间 【附dp解法】
- HDU 2079 选课时间(母函数/生成函数)
- hdu 2079 选课时间
- HDU(2079)选课时间
- hdu 2079 选课时间
- hdu 2079 选课时间
- 深度学习框架Caffe学习笔记(1)-Caffe环境搭建
- JVM(2)对象分配、布局、访问
- 微信小程序8-swiper(滑动面板)
- 递归、栈、非递归非栈实现二叉树的遍历
- 最短路几种算法对比
- HDU ACM 11 2079 选课时间 母函数或者DP
- 2016年11月7日学习总结
- Java 23种设计模式总结,收录学习
- leetcode_258
- 一个DirectDraw入门程序
- 基于Maven实现war包继承
- 第7天
- 动规第一天.2
- EJB的简介