zoukankan      html  css  js  c++  java
  • 背包DP——砝码称重(未完结)

    砝码称重

    内存限制:128 MiB时间限制:1000 ms标准输入输出
    题目类型:传统评测方式:文本比较

    题目描述

    设有1g、2g、3g、5g、10g、20g的砝码各若干枚(其总重<=1000g)。求出用这些砝码能称出的不同重量的个数,但不包括一个砝码也不用的情况。

    输入格式

    只有一行,共有六个数,一次为1g、2g、3g、5g、10g、20g砝码的个数

    输出格式

    只有一行,为称出不同重量的个数

    样例

    样例输入

    1 1 0 0 0 0
    

    样例输出

    Total=5

     1 #include<iostream> 
     2 #include<cstdio>
     3 using namespace std;
     4 int he,zhi[10]={0,1,2,3,5,10,20},ki,total,n,ge[1000005];
     5 int bag[1000005];
     6 int read()
     7 {
     8     char a=getchar();
     9     int k=0,fu=1;
    10     while(a>'9'||a<'0')
    11     {
    12         if(a=='-')fu=-1;
    13         a=getchar();
    14     }
    15     while(a>='0'&&a<='9')
    16     {
    17         k=k*10+a-'0';
    18         a=getchar();
    19     }
    20     return k*fu;
    21 }
    22 int main()
    23 {
    24     for(int i=1;i<=6;i++)
    25     {
    26         ki=read();
    27         he+=ki*zhi[i];
    28         for(int j=1;j<=ki;j++)
    29             ge[++n]=zhi[i];
    30     }
    31     bag[0]=1;
    32     for(int i=1;i<=n;i++)
    33     {
    34         for(int j=he;j>=ge[i];j--)
    35         {
    36             bag[j]+=bag[j-ge[i]];
    37         }
    38     }
    39     for(int i=1;i<=he;i++)
    40         if(bag[i])total++;
    41     cout<<"Total="<<total;
    42     return 0;
    43 }
  • 相关阅读:
    三级菜单打怪升级,young -> plus -> pro
    Python注释是什么东东
    腾讯云中的mysql镜像数据定时同步到本机数据库
    linux重复命令的简洁化
    快速查询mysql中每个表的数据量
    MGR与MHA
    mysql基础练习
    mongo日常操作备忘
    MongoDB:删除操作
    MongoDB插入数据的3种方法
  • 原文地址:https://www.cnblogs.com/lihaolin/p/11269215.html
Copyright © 2011-2022 走看看