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



  • 相关阅读:
    hud 3336 count the string (KMP)
    JSOI2008星球大战(并查集)
    HAOI2006受欢迎的牛
    十二月个人考核
    十二月个人考核
    CentOS配置Tomcat监听80端口,虚拟主机
    CentOS配置Tomcat监听80端口,虚拟主机
    如何调试一个无法重现的错误?
    如何调试一个无法重现的错误?
    Highcharts的自适应DOM或者DIV,JS方法实现
  • 原文地址:https://www.cnblogs.com/Jstyle-continue/p/6352002.html
Copyright © 2020-2023  润新知