九度题库 (题目1462:两船载物问题)
2014-02-10 17:40
197 查看
01背包问题
#include <iostream> #include <stdio.h> #include <malloc.h> #include <string.h> using namespace std; int main(){ int n; int c1,c2; while(cin>>n>>c1>>c2){ int* list=(int*)malloc(sizeof(int)*n); int i; for(i=0;i<n;i++) cin>>list[i]; int s[5001]; int sum=0; for(i=0;i<n;i++) sum+=list[i]; memset(s,0,sizeof(s)); for(i=0;i<n;i++) { int j; for(j=c1;j>=list[i];j--) s[j]= s[j] >= s[j-list[i]]+list[i] ?s[j]:s[j-list[i]]+list[i]; //这里使用一维数组跟踪动态规划的最大值,注意循环从最大的空间开始向小开始循环设置,循环结束后 //S[C1]为C1可以容纳的最大值 //一定注意是从大到小循环,这样不会破坏上一层的结果 } int sum1=s[c1]+c2; if(sum1>=sum) cout<<"YES"<<endl; else cout<<"NO"<<endl; } return 0; }
相关文章推荐
- 九度题库 (题目1462:两船载物问题)
- 九度题库 (题目1462:两船载物问题)
- 九度笔记之 1462:两船载物问题
- 九度 1462:两船载物问题(01背包)
- 题目1462:两船载物问题
- 题目1462:两船载物问题
- 题目1462:两船载物问题
- 题目1462:两船载物问题
- 题目1462:两船载物问题
- 九度 oj 题目1006:ZOJ问题
- 九度 题目1008:最短路径问题
- 九度OJ 题目1153:括号匹配问题
- 九度 题目1044:Pre-Post m元树问题
- 九度 题目1008:最短路径问题
- 九度 oj 题目1552:座位问题
- 题目 1045 百鸡问题 九度Online Judge
- 【学习笔记】〖九度OJ〗题目1104:整除问题
- 九度:题目1554:区间问题
- 九度 oj 题目1549:货币问题
- 九度oj 题目1045:百鸡问题