zoukankan      html  css  js  c++  java
  • HDU

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2126

    #include <iostream>
    #include <string.h>
    #include <stdio.h>
    using namespace std;
    /****************************************************************************************************************
                    题意:一个变形的 0/1 背包,n个物品,m元钱,每个物品最多买一次,
                            问最多可以买几件物品,并且输出方案数。
                    思路:
                    1,加一维表示已经买几件物品。
                    2,用了一个数组dp[v][2] ,dp[v][0] 储存原本要记录的 dp ,即最多能买多少种
                       而 dp[v][1] 则记录方案数目。记住需要初始化,把所有 dp[i][1] 都设置成1
                    3,体会:
                        用了网上的 C 提交了一下,发现 run time是0;
                        然后用自己的C++提交了一下,发现 run time是31MS.
                        以后试试使用C的输入输出,果然会快很多呢!!!!!!
    ****************************************************************************************************************/
    int a[35];
    int dp[505][2];
    int main()
    {
        int T,N,V;
        cin>>T;
        while(T--)
        {
            cin>>N>>V;
            for(int i = 1;i <= N;i ++)
                cin>>a[i];
            memset(dp,0,sizeof(dp));
            for(int i = 0;i <= V;i ++)  dp[i][1]=1;
    
            for(int i = 1;i <= N;i ++){
                for(int j = V;j >= a[i];j --){
                    if(dp[j][0] == dp[j-a[i]][0]+1)
                        dp[j][1]+=dp[j-a[i]][1];
                    else if(dp[j][0] < dp[j-a[i]][0]+1){
                        dp[j][0]=dp[j-a[i]][0]+1;
                        dp[j][1]=dp[j-a[i]][1];
                    }
                }
            }
            if(dp[V][0])
                cout<<"You have "<<dp[V][1]<<" selection(s) to buy with "<<dp[V][0]<<" kind(s) of souvenirs."<<endl;
            else
                cout<<"Sorry, you can't buy anything."<<endl;
        }
        return 0;
    }
    



  • 相关阅读:
    接收HttpPost请求路由可以不用带去掉参数
    吟唱一首
    C# XML反序列化解析成对象集合
    两个对象中相同属性赋值
    CefSharp 笔记-1
    C# 笔记--Label设置背景图片
    C# 笔记--VS 2017包下载超时,连接失败
    SQLite——C#查询表时 该字符串未被识别为有效的 DateTime 错误
    C# 笔记--Sendkeys
    C# 笔记——MeasureString准确测量
  • 原文地址:https://www.cnblogs.com/Jstyle-continue/p/6352002.html
Copyright © 2011-2022 走看看