zoukankan      html  css  js  c++  java
  • HDU1114+完全背包

    完全:

    题意:给定E,F,分别表示空的存钱罐的重量和装了钱之后的重量。

    给定n种money的价值和重量

    dp[ i ][ j ]:表示从前 i 种money中选出某些,使得重量至少为 j 得到的最大价值。

    View Code
     1 /*
     2 完全背包 变形
     3 */
     4 #include<stdio.h>
     5 #include<stdlib.h>
     6 #include<string.h>
     7 #include<iostream>
     8 #include<algorithm>
     9 #include<queue>
    10 #include<map>
    11 #include<math.h>
    12 using namespace std;
    13 const int maxn = 10005;
    14 const int inf = 99999999;
    15 int main(){
    16     int T;
    17     scanf("%d",&T);
    18     while( T-- ){
    19         int E,F;
    20         scanf("%d%d",&E,&F);
    21         int sum=0;
    22         int dp[ maxn ];
    23         int w[ maxn ],val[ maxn ];
    24         int n;
    25         scanf("%d",&n);
    26         for( int i=0;i<n;i++ ) {
    27             scanf("%d%d",&val[ i ],&w[ i ]);
    28             sum+=val[ i ];
    29         }
    30         for( int i=0;i<maxn ;i++ ) dp[ i ]=inf;
    31         dp[ 0 ]=0;
    32         for( int i=0;i<n;i++ ){
    33             for( int j=w[i];j<=(F-E);j++ ){
    34                 dp[j]=min(dp[j],dp[j-w[i]]+val[i]);
    35             }
    36         }
    37         //for( int i=50;i<105;i++ ) printf("dp[%d]:%d\n",i,dp[i]);
    38         if( dp[ F-E ]!=inf ) printf("The minimum amount of money in the piggy-bank is %d.\n",dp[F-E]);
    39         else printf("This is impossible.\n");
    40     }
    41     return 0;
    42 }
    43         
    44     
    keep moving...
  • 相关阅读:
    Elasticsearch 快速入门
    Linux 非互联网环境安装依赖包
    linux 安装mysql(rpm文件安装)
    Nginx安装与配置文件nginx.conf详解
    Linux 知识
    MySQL Windows安装连接
    post请求body格式
    MySQL 数据库备份
    SOAP与restful webservice
    大数据架构工具hadoop
  • 原文地址:https://www.cnblogs.com/xxx0624/p/2818576.html
Copyright © 2011-2022 走看看