zoukankan      html  css  js  c++  java
  • hdu--2546--dp<01背包>

    距离上一篇 又过去2天了=-=

    我发现 我最近开始忘记写 题目链接了  算了 以后 先写链接 省得忘记    touch  me

    ------------

    这题 就是个01背包 只是多了一些 限制条件 但读题一定要注意啊..

    我刚开始 没读清 一直WA...

    当你的金额少于5元时 是不能购买任何东西的 卧槽....

    我没仔细看它 ...

    当你留意到它以后 只要多个判断条件就好了    然后因为只要有5元 就可以任意购买多少钱的物品 那肯定是去买 最贵的那就可以 在背包dp[x]的时候 将x设为m-5 因为5块钱已经被我们拿去买最贵的物品了

    so 就这样..

     1 #include <iostream>
     2 #include <cstring>
     3 #include <algorithm>
     4 using namespace std;
     5 
     6 const int size = 1010;
     7 int arr[size];
     8 int dp[size];
     9 
    10 void zeroOne( int n , int m )
    11 {
    12     for( int i = 0 ; i<n ; i++ )
    13     {
    14         for( int j = m ; j>=arr[i] ; j-- )
    15         {
    16             dp[j] = max( dp[j] , dp[ j-arr[i] ] +arr[i] );
    17         }
    18     }
    19 }
    20 
    21 int main()
    22 {
    23     int n , m , money , sum;
    24     while( cin >> n && n )
    25     {
    26         memset( dp , 0 , sizeof(dp) );
    27         for( int i = 0 ; i<n ; i++ )
    28         {
    29             cin >> arr[i]; 
    30         }
    31         cin >> m;
    32         money = m;
    33         if( m<5 )
    34         {
    35             cout << m << endl;
    36         }
    37         else
    38         {
    39             sort( arr , arr+n );
    40             zeroOne(n-1,m-5);
    41             cout << m-dp[m-5]-arr[n-1]<<endl;
    42         }
    43     }
    44     return 0;
    45 }
    View Code

    today:

      十二年 一个轮回 一部电影-----少年时代

    just follow your heart
  • 相关阅读:
    最简洁的Mysql修改密码,不会你打我
    两步解决jetbrains-agent-latest.zip不能拖入工作区
    JSON学习笔记
    【书评】【不推荐】《机器学习实战——基于Scikit-Learn和TensorFlow》
    weblogic更新部署
    功能网址
    jupyter快捷键
    MYSQL连接字符串参数说明
    C# 格式验证
    Supervisor
  • 原文地址:https://www.cnblogs.com/radical/p/3919262.html
Copyright © 2011-2022 走看看