zoukankan      html  css  js  c++  java
  • nyoj--289--苹果(01背包)

    苹果

    时间限制:3000 ms  |  内存限制:65535 KB
    难度:2
    描述

    ctest有n个苹果,要将它放入容量为v的背包。给出第i个苹果的大小和价钱,求出能放入背包的苹果的总价钱最大值。


    输入
    有多组测试数据,每组测试数据第一行为2个正整数,分别代表苹果的个数n和背包的容量v,n、v同时为0时结束测试,此时不输出。接下来的n行,每行2个正整数,用空格隔开,分别代表苹果的大小c和价钱w。所有输入数字的范围大于等于0,小于等于1000。
    输出
    对每组测试数据输出一个整数,代表能放入背包的苹果的总价值。
    样例输入
    3 3
    1 1
    2 1
    3 1
    0 0
    样例输出
    2
    来源

    动态规划经典问题


    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    int dp[10000+20];
    struct node
    {
    	int size,val;
    }apple[10000];
    int main()
    {
    	int n,v;
    	while(scanf("%d%d",&n,&v),n||v)
    	{
    		memset(dp,0,sizeof(dp));
    		for(int i=0;i<n;i++)
    		scanf("%d%d",&apple[i].size,&apple[i].val);
    		for(int i=0;i<n;i++)
    		for(int j=v;j>=apple[i].size;j--)
    		dp[j]=max(dp[j],dp[j-apple[i].size]+apple[i].val);
    		printf("%d
    ",dp[v]);
    	}
    	return 0;
    }



  • 相关阅读:
    App案例分析——XBMC
    四则运算题目生成程序(基于控制台)
    第一次结对编程
    第二次作业--摩拜单车
    第0次作业
    团队编程作业1-团队展示与选题
    结对编程1-模块化
    APP案例分析
    第1次作业
    第0道作业
  • 原文地址:https://www.cnblogs.com/playboy307/p/5273767.html
Copyright © 2011-2022 走看看