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;
    }



  • 相关阅读:
    nginx连接php fastcgi配置
    zabbix企业级监控概述和部署
    zabbix配置文件详解
    zabbix自定义键值原理
    ipvsadm命令
    lvs持久连接
    TCP协议的3次握手与4次挥手
    TCP协议的3次握手与4次挥手
    设计模式-模板模式
    设计模式-模板模式
  • 原文地址:https://www.cnblogs.com/playboy307/p/5273767.html
Copyright © 2011-2022 走看看