4141:砝码称重

news/2024/11/8 3:06:07/

#include<iostream>
using namespace std;
int total=0;
int dp[1000]; 
int num[6],sum;
int kg[6]={1,2,3,5,10,20};
int main(void){
    for(int i=0;i<6;i++){
        cin>>num[i];
        sum+=num[i]*kg[i];
    }
    dp[0]=1;
//对于第i种砝码,枚举使用0~num[i]个该砝码,对于每个数量j,从后往前循环dp数组
//若dp[k-kg[i]]==1,则说明使用i种砝码可以称出重量k,故dp[k]=1。
    for(int i=0;i<6;i++){
        for(int j=1;j<=num[i];j++){
            for(int k=sum;k>=kg[i];k--){
                if(dp[k-kg[i]]==1) dp[k]=1;
            }
        }
    }
    for(int i=1;i<=sum;i++){
        if(dp[i]==1) total++;
    }
    printf("Total=%d",total);
    return 0;
}


 

这个逻辑感觉讲不通,我总感觉这个做法是列举了同一种质量的砝码的称重组合,就比如1g的砝码如果有3个,她就能称重1,2,3,然后2g的继续,是这样的结果,那三个for循环能实现不同质量砝码的组合吗?

动态规划看不懂

(1条消息) Python蓝桥杯真题——砝码称重_怎么计算出第3个砝码的重量是多少_Py小郑的博客-CSDN博客

 

#include<iostream>
#include<cmath>
using namespace std;
int a[10000],x,num,b[10]={0,1,2,3,5,10,20},ans;
bool t[1000];
int main(){
    for(int i=1;i<=6;i++){
        cin>>x;
        for(int j=1;j<=x;j++) a[++num]=b[i];
    }
    t[0]=1;
    for(int i=1;i<=num;i++){
        for(int j=1010;j>=0;j--){
            if(t[j]) t[j+a[i]]=1;
        }
    }
    for(int i=1;i<=1010;i++){
        if(t[i]) ans++;
    }
    printf("Total=%d",ans);
    return 0;
}

这个平台通不过。。。

 

 


http://www.ppmy.cn/news/601443.html

相关文章

java8函数式接口使用详解

在Java8之前&#xff0c;我们通常使用匿名内部类来实现接口的抽象方法&#xff0c;例如&#xff1a; //定义一个接口 interface Greeting {void sayHello(String name); }//使用匿名内部类实现接口 Greeting greeting new Greeting() {Overridepublic void sayHello(String n…

pcie转m2装系统win10_NVMe SSD安装Win10系统详解:小白秒懂

最近有不少小伙伴问我&#xff0c;他们自己买了个PCIe SSD&#xff0c;不知道怎么装系统。如果一个人问还好&#xff0c;但是如果很多人问同样的问题&#xff0c;那某冬索性写个PCIe SSD装系统的教程给大家看好了。 要装系统进PCIe SSD&#xff0c;当然我们得有个PCIe SSD。 这…

硬件篇-配置

写在最前 这已经可以成为垃圾佬配置了。。。 机箱->239元 机箱选用的itx迷你机箱&#xff0c;为了后期nas方便拓展选了4盘位&#xff0c;该机箱还是比较符合我的预期的&#xff0c;颇有种麻雀虽小五脏俱全的感觉&#xff0c;机箱可以安装matx主板和itx主板&#xff0c;还是…

租房小程序源码推荐,让你的租房平台更有竞争力

为租房平台的从业者&#xff0c;你是否也曾为如何提高平台的竞争力而苦恼&#xff1f;租房小程序源码或许是一个不错的选择。 租房小程序源码是一种可以让你快速搭建一个专属的租房平台的工具&#xff0c;可以帮助你快速上线一个符合市场需求的租房平台。相较于从头开始开发一…

nginx超时相关参数

#读取http body的超时时间&#xff0c;单位秒&#xff0c;连接建立后&#xff0c;服务端接收body&#xff0c;规定时间内没收到&#xff0c;则超时&#xff0c;返回给客服端408&#xff08;request time out&#xff09; client_body_timeout 1000; #发送响应超时时间&…

第六章、Linux文件与目录管理

6.1 目录与路径 6.1.1 相对路径与绝对路径 绝对路径&#xff1a;路径的写法“一定由根目录 / 写起”&#xff0c;例如&#xff1a; /usr/share/doc 这个目录。 相对路径&#xff1a;路径的写法“不是由 / 写起”&#xff0c;例如由 /usr/share/doc 要到 /usr/share/man 下面…

修改注册表关闭 Vari-Bright,无需安装 Radeon 显卡控制台,禁用“屏幕自适应亮度调节”

情景描述&#xff1a;它会在屏幕颜色浅的时候调亮屏幕&#xff0c;在颜色深的时候调暗屏幕&#xff0c;这样看电影什么的碰到暗的画面它还调暗&#xff0c;结果整个屏幕就变成了一坨浆糊&#xff0c;亮的时候又亮的刺眼。这到底是什么逻辑啊。。。&#xff1f;而且这个功能不受…

Nvidia GeForce面板占用快捷键,如何取消“必须进行支持的游戏,方可使用此功能”提示的方法

这个问题的出现应该大部分是使用idea的用户或其他有快捷键要求的用户才会出现。 解决方法很简单。 第一种临时方法&#xff0c;也是最为有效的办法。 打开任务管理器&#xff0c;找到这个进程&#xff0c;直接结束即可。 关掉该进程后此面板被关闭&#xff0c;altf2快捷键恢复…