• 洛谷 P2347 砝码称重 != codevs 2144


    题目描述

    设有1g、2g、3g、5g、10g、20g的砝码各若干枚(其总重<=1000),

    输入输出格式

    输入格式:

    输入方式:a1 a2 a3 a4 a5 a6

    (表示1g砝码有a1个,2g砝码有a2个,…,20g砝码有a6个)

    输出格式:

    输出方式:Total=N

    (N表示用这些砝码能称出的不同重量的个数,但不包括一个砝码也不用的情况)

    输入输出样例

    输入样例#1:
    1 1 0 0 0 0
    输出样例#1:
    Total=3

    砝码只有选与不选 所以是01背包
    #include <algorithm>
    #include <iostream>
    #include <cstring>
    #include <cstdio>
    
    using namespace std;
    
    bool fw[10001];
    int h=0,a1,a2,a3,a4,a5,a6;
    int a[10001],ans,i,j,dp[10001];
    int main()
    {
        cin>>a1>>a2>>a3>>a4>>a5>>a6;
        while(a1--)
        a[h++]=1;
        while(a2--)
        a[h++]=2;
        while(a3--)
        a[h++]=3;
        while(a4--)
        a[h++]=5;
        while(a5--)
        a[h++]=10;
        while(a6--)
        a[h++]=20;
        for(i=0;i<h;++i)
        {
            for(j=1000;j>=a[i];--j)//题目说总重不超过1000
            dp[j]=max(dp[j],dp[j-a[i]]+a[i]);
        }
        for(i=1;i<=1000;++i)//累加不同情况
        if(dp[i]&&!fw[dp[i]])
        {
            fw[dp[i]]=1;
            ans++;
        }
        cout<<"Total="<<ans;
    }
    我们都在命运之湖上荡舟划桨,波浪起伏着而我们无法逃脱孤航。但是假使我们迷失了方向,波浪将指引我们穿越另一天的曙光。
  • 相关阅读:
    swoole创建进程
    php中,posix_getpid() 和 getmypid() 有什么不同
    php查看进程
    初探PHP多进程
    nginx转发
    mime类型
    acwing 517. 信息传递
    LeetCode 1255 得分最高的单词集合 Maximum Score Words Formed by Letters
    LEETCODE 1254 统计封闭岛屿的数目 Number of Closed Islands
    算法问题实战策略 SORTGAME
  • 原文地址:https://www.cnblogs.com/ruojisun/p/6367649.html
Copyright © 2020-2023  润新知