点评团促销 -动态规划 背包
来源:互联网 发布:ips显示器知乎 编辑:程序博客网 时间:2024/05/01 20:14
点评团准备展开一次大促销,促销中的每件商品,都有市场价和促销价,市场价和促销价的差就是用户省下的钱。由于本次活动的目标人群是点评团忠实用户,所以购买每件商品还需要一定量的金币,而金币就是根据用户的历史购买计算出来的。
给定一个用户的资金预算和金币预算,计算如何在不超过预算的情况下能省下最多的钱。
输入:首先三个整数,n: 促销商品的数量,m: 资金预算,k: 金币预算
其中0
接下来有n行,每行会有三个整数: p1, p2, g,分别代表该商品的市场价、促销价以及需要耗费的金币数量(p1 >= p2>0, g>0)
输出:一个数字,代表能省下的资金的最大值
注意:输入数据中会包含多条这样的测试数据
输入样例:
2 1 1
10 1 1
20 1 1
输出样例:
给定一个用户的资金预算和金币预算,计算如何在不超过预算的情况下能省下最多的钱。
输入:首先三个整数,n: 促销商品的数量,m: 资金预算,k: 金币预算
其中0
接下来有n行,每行会有三个整数: p1, p2, g,分别代表该商品的市场价、促销价以及需要耗费的金币数量(p1 >= p2>0, g>0)
输出:一个数字,代表能省下的资金的最大值
注意:输入数据中会包含多条这样的测试数据
输入样例:
2 1 1
10 1 1
20 1 1
输出样例:
19
推荐指数:※※
来源:大众点评
这是一道二维背包问题,可是使用动态规划来借。考虑两个维度。
#include<iostream>#include<stdio.h>#include<stdlib.h>#include<string.h>#include<algorithm>using namespace std;typedef struct Node{int p1;int p2;int g;int sale;}Node;int dp(int n,int m,int k,Node *w){int i,j,t;int **dp=new int* [m+1];for(i=0;i<=m;i++){dp[i]=new int[k+1];}for(i=0;i<=m;i++)for(j=0;j<=k;j++)dp[i][j]=0;for(t=0;t<n;t++){for(i=m;i>0;i--){for(j=k;j>0;j--){if(w[t].p2<=i&&w[t].g<=j){dp[i][j]=max(dp[i-w[t].p2][j-w[t].g]+w[t].sale,dp[i][j]);}}}}return dp[m][k];}int main(){int n,m,k,i,j;while(scanf("%d%d%d",&n,&m,&k)!=EOF){Node *w=new Node [n];for(i=0;i<n;i++){scanf("%d%d%d",&w[i].p1,&w[i].p2,&w[i].g);w[i].sale=w[i].p1-w[i].p2;}int largest= dp( n,m,k,w);printf("%d\n",largest);}return 0;}
- 点评团促销 -动态规划 背包
- 动态规划 背包问题
- 蓝桥杯 动态规划+背包
- 【动态规划】背包问题
- 动态规划 01背包
- 动态规划-背包问题
- 动态规划+背包问题
- 动态规划-背包问题
- 背包问题 -- 动态规划
- 动态规划之背包
- 《背包问题》 动态规划
- 动态规划--背包
- 动态规划-背包问题
- 01背包-动态规划
- 动态规划------背包
- 动态规划-----完全背包
- 动态规划 背包问题
- 动态规划 背包问题
- 在VC中加载LIB库文件的三种方法
- static
- VC图像编程
- UVa 10014 Simple calculations (数学)
- 【乱七八糟】atoi、itoa、递归
- 点评团促销 -动态规划 背包
- 关于Snmp++ v3.3.0版的一点看法
- MapReduce:详解Shuffle过程
- vc显示jpg,gif图像简单方法
- 点击按钮改变标签内容(采用lambda函数方式)
- 界面编程:vc美化界面
- 创建一个自己的git学习测试环境!
- 关于异步获取的四种方式,以Grails框架为例
- ARM GUN基本语法