zoukankan      html  css  js  c++  java
  • NYoj289苹果(0-1背包)

    苹果

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

    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 <bits/stdc++.h>
    using namespace std;
    
    #define mem(a) memset(a, 0, sizeof(a))
    struct node {
    	int c, w;
    }a[1100];
    int dp[1100][1100];
    
    int main() {
    	int n, v;
    	while (cin >> n >> v && (n || v)) {
    		mem(a);
    		mem(dp);
    		for (int i = 1; i<=n; i++)	cin >> a[i].c >> a[i].w;
    		for (int i = 1; i<=n; i++) {
    			for (int j = 0; j<=v; j++) {
    				if (a[i].c <= j)	dp[i][j] = max(dp[i-1][j], dp[i-1][j-a[i].c] + a[i].w);
    				else	dp[i][j] = max(dp[i][j], dp[i-1][j]);
    			}
    		}
    		printf("%d
    ",dp[n][v]);
    	}	
    	return 0;
    }


  • 相关阅读:
    有关phpmailer的详细介绍及使用方法
    威盾解密
    PHP正则表达式验证是否含有中文
    php防止重复提交表单
    simplexml 对xml的增删改操作
    Javascript正则表达式完全学习手册
    利用JS做到隐藏div和显示div
    js控制div显示与隐藏
    后台登陆地址
    MVC 自定义路由
  • 原文地址:https://www.cnblogs.com/Tovi/p/6194768.html
Copyright © 2011-2022 走看看