1017
来源:互联网 发布:vue.js基础教程 编辑:程序博客网 时间:2024/05/18 01:10
题意:给定一组产品以及他们的value,还有包的所能容纳的价值,求包内装产品的最大价值
思路:不难得出状态方程为 dp[j] = max ( dp[j] , dp[ j-w[i] ] +v[i] ])
感想:属于01背包问题,只要掌握了一个,这一类都可以类比出来。
#include<stdio.h>
#include<string.h>#include<algorithm>
using namespace std;
const int MAX = 1005;
int w[MAX];
int v[MAX];
int dp[MAX];
int main()
{
int t, n, m;
scanf("%d", &t);
while (t--)
{
memset(w, 0, sizeof(w));
memset(v, 0, sizeof(v));
memset(dp, 0, sizeof(dp));
scanf("%d%d", &n, &m);
for (int i = 1; i <= n; i++)
scanf("%d", &v[i]);
for (int i = 1; i <= n; i++)
scanf("%d", &w[i]);
for (int i = 1; i <= n; i++)
{
for (int j = m; j >= 0; j--)
{
if (j >= w[i])
dp[j] = max(dp[j], dp[j - w[i]] + v[i]);
}
}
printf("%d\n", dp[m]);
}
return 0;
}
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<string>
#include<queue>
#include<algorithm>
#include<map>
#include<iomanip>
#define INF 99999999
using namespace std;
const int MAX=100;
int height[MAX];
typedef struct node{
int w;
int l;
int h;
bool operator<(node b)const{
if(w == b.w)return l>b.l;
return w>b.w;
}
};
node s[MAX];
int main(){
int n,a,b,c,num=1;
while(cin>>n,n){
int k=0;
for(int i=0;i<n;++i){
cin>>a>>b>>c;
//对a,b,c排序.
if(a>b)a=a+b,b=a-b,a=a-b;
if(a>c)a=a+c,c=a-c,a=a-c;
if(b>c)b=b+c,c=b-c,b=b-c;
s[k].w=a,s[k].l=b,s[k++].h=c;//以a,b为底,c为高.
s[k].w=a,s[k].l=c,s[k++].h=b;//以a,c为底,b为高.
s[k].w=b,s[k].l=c,s[k++].h=a;//以b.c为底,a为高.
}
sort(s,s+k);
int Max=s[0].h;
height[0]=s[0].h;
for(int i=1;i<k;++i){
height[i]=s[i].h;
for(int j=0;j<i;++j){
if(s[i].w<s[j].w && s[i].l<s[j].l){
height[i]=max(height[i],s[i].h+height[j]);
}
}
Max=max(Max,height[i]);
}
cout<<"Case "<<num++<<": maximum height = "<<Max<<endl;
}
return 0;
}
0 0
- 1017
- 1017
- 1017
- 1017
- 1017
- 1017
- 1017
- 1017
- 1017
- 1017
- 1017
- 1017
- 1017
- 1017
- 1017
- 解释 1017
- Ural 1017
- 1017 Packets
- 查找旋转数组的最小值
- 实用知识:CoreMotion框架使用(加速计方法使用)
- [ReactiveCocoa]入门教程:第一部分
- 第五次C++作业
- 实用知识:陀螺仪的方法使用
- 1017
- list to read
- 36.平衡二叉树
- 上传并解析excel文件
- matlab制作及生成avi,gif动画
- 实用知识:摇一摇功能的方法使用(真简单??)
- C++ 普通内联函数 及内联函数与宏的区别
- java网络编程
- delphi概念性学习(二)