2 月 6 日算法练习- 动态规划

砝码承重

【问题描述】

    你有一架天平和 N 个砝码,这 N 个砝码重量依次是 W1,W2,...,WN。请你计算一共可以称出多少种不同的正整数重量?注意砝码可以放在天平两边。

【输入格式】

    输入的第一行包含一个整数 N。第二行包含 N 个整数:W1,W2,W3,...,WN。

【输出格式】

    输出一个整数代表答案。

【样例输入】

    31 4 6

【输出样例】

    10

【样例说明】

    能称出的 10 种重量是:1、2、3、4、5、6、7、9、10、11。1 = 1;2 = 6 − 4 (天平一边放 6,另一边放 4);3 = 4 − 1;4 = 4;5 = 6 − 1;6 = 6;7 = 1 + 6;9 = 4 + 6 − 1;10 = 4 + 6;11 = 1 + 4 + 6。

【评测用例规模与约定】

    对于 50% 的评测用例,1≤N≤15。对于所有评测用例,1≤N≤100,N 个砝码总重不超过 100000。

思路:两个状态[i][j]表示前 i 个砝码可以构成 j 重量,如果可以则为 true。[i][j]可以通过[i-1][j+w[i]],[i-1][j-w[i]],[i-1][j]转移来,表示将第 i 个砝码放在重的一方,轻的一方或不放,只要构成j 重量就行。由于 j-w[i]可能<0 导致数组越界,所以需要+offset 偏移量使重量不会越界。

#include<bits/stdc++.h>
using namespace std;
const int N = 1e2+5,M = 1e5+10,offset = 1e5;
int w[N],dp[N][M+offset],n;
int main(){cin>>n;for(int i=1;i<=n;i++)cin>>w[i];dp[0][0+offset] = 1;for(int i=1;i<=n;i++){for(int j=0;j<M+offset;j++){if(j-w[i]>=0)dp[i][j] |= dp[i-1][j-w[i]];dp[i][j] |= dp[i-1][j+w[i]] || dp[i-1][j];}}int ans = 0;for(int i=1+offset;i<offset+M;i++)if(dp[n][i])ans++;cout<<ans;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/672811.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【考研408】计算机与组成原理笔记

文章目录 [toc] 计算机系统概述计算机系统层次结构计算机硬件的基本组成计算机软件的分类计算机的工作过程计算机系统的多级层次结构课后习题 计算机的性能指标计算机的主要性能指标几个专业术语课后习题 总结 数据的表示和运算数制与编码进位计数制及其相互转换 定点数的表示与…

ctfshow——命令执行

文章目录 web 29——通配符*绕过web30——调用其他命令执行函数web 31——参数逃逸web 32-web 36——配合文件包含伪协议web 37-web 39——文件包含web 40—— web 29——通配符*绕过 i不区分大小写&#xff0c;直接?csystem(tac fl*.php); web30——调用其他命令执行函数 调用…

Linux自有服务—防火墙和计划任务

Linux常用自有服务有NTP时间同步服务、firewalld防火墙服务和crond计划任务服务&#xff0c;NTP在上一篇中讲过&#xff0c;这次主要来说一下防火墙firewalld与计划任务的相关内容。如下。 一、Linux中防火墙firewalld 1、什么是防火墙 防火墙&#xff1a;防范一些网络攻击…

HashMap底层原理第二篇

1.HashMap的get流程 分析代码: public V get(Object key) {HashMap.Node<K,V> e;/*** 1.计算key的hash值* e:获取的结果*/return (e = getNode(hash(key), key)) == null ? null : e.value; }final HashMap.Node<K,V> getNode(int hash, Object key) {HashMap.…

高速接口PCB布局指南(五)高速差分信号布线(三)

高速接口PCB布局指南&#xff08;五&#xff09;高速差分信号布线&#xff08;三&#xff09; 1.表面贴装器件焊盘不连续性缓解2.信号线弯曲3.高速信号建议的 PCB 叠层设计4.ESD/EMI 注意事项5.ESD/EMI 布局规则 tips&#xff1a;资料主要来自网络&#xff0c;仅供学习使用。 …

2.6作业

一、填空题 1、一个类的头文件如下所示&#xff0c;num初始化值为5&#xff0c;程序产生对象T&#xff0c;且修改num为10&#xff0c;并使用show()函数输出num的值10。 #include <iostream.h> class Test { private: static int num; public: Test(int); void show(); };…

Vue源码系列讲解——变化侦测篇【上】(何为变化侦测)

目录 1. 前言 2.什么是变化侦测 3.总结 1. 前言 众所周知&#xff0c;Vue最大的特点之一就是数据驱动视图&#xff0c;那么什么是数据驱动视图呢&#xff1f;在这里&#xff0c;我们可以把数据理解为状态&#xff0c;而视图就是用户可直观看到页面。页面不可能是一成不变的…

前端JavaScript篇之强类型语言和弱类型语言的区别和对比

目录 强类型语言和弱类型语言的区别和对比总结 强类型语言和弱类型语言的区别和对比 强类型语言和弱类型语言是编程语言的两种不同类型系统&#xff0c;它们处理变量类型的方式有所不同。 强类型语言&#xff1a; 强类型语言要求在使用变量之前必须明确声明其类型&#xff0c;…

dolphinscheduler海豚调度(一)简介快速体验

1、简介 Apache DolphinScheduler 是一个分布式易扩展的可视化DAG工作流任务调度开源系统。适用于企业级场景&#xff0c;提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方案。 Apache DolphinScheduler 旨在解决复杂的大数据任务依赖关系&#xff0c;并为应…

手把手教你激活BetterZip for Mac免费下载(附注册码) v5.3.4

软件介绍 BetterZip for Mac是一款广受欢迎的文件解压缩工具&#xff0c;支持Mac以及Windows等多个平台&#xff0c;能够生成被Win和Mac支持的压缩包&#xff0c;让用户可以在Mac和Windows电脑之间使用一种通用压缩包&#xff0c;用户可以更快捷地向压缩文件中添加和删除文件&…

暴雨讲堂| 发展数字经济 促进数实融合

数字经济呈现出以数字技术为发展驱动力、以数据要素为核心生产要素、以平台为主要组织形式的新特征。 数据、算法、算力是数字经济时代的重要推动力。 算法和算力是充分挖掘数据价值的必要支撑。大数据和人工智能的应用不仅体现在生产端、渠道端&#xff0c;在科技的生产中也…

相机图像质量研究(9)常见问题总结:光学结构对成像的影响--工厂镜头组装

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结&#xff1a;光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结&#xff1a;光学结构对成…

Linux(三)--文件系统

Linux命令简介 [rootlocalhost ~]# 表示 Linux 系统的命令提示符。 []&#xff1a;这是提示符的分隔符号&#xff0c;没有特殊含义。 root&#xff1a;显示的是当前的登录用户&#xff0c;笔者现在使用的是 root 用户登录。 &#xff1a;分隔符号&#xff0c;没有特殊含义。 l…

c++阶梯之类与对象(中)< 续集 >

前文&#xff1a; c阶梯之类与对象&#xff08;上&#xff09;-CSDN博客 c阶梯之类与对象&#xff08;中&#xff09;-CSDN博客 前言&#xff1a; 在上文中&#xff0c;我们学习了类的六个默认成员函数之构造&#xff0c;析构与拷贝构造函数&#xff0c;接下来我们来看看剩下…

hbuiderX打包为apk后无法停止录音的解决方案

同一个APP在hbuilder和hbuilderX打包&#xff0c;出现没有麦克风权限 - DCloud问答 第一步&#xff1a; 在manifest.json的“模块权限配置”中勾选以下权限&#xff1a; <uses-permission android:name"android.permission.MODIFY_AUDIO_SETTINGS" /> <use…

【OpenVINO™】在 MacOS 上使用 OpenVINO™ C# API 部署 Yolov5 (下篇)

在 MacOS 上使用 OpenVINO™ C# API 部署 Yolov5 &#xff08;下篇&#xff09; 项目介绍 YOLOv5 是革命性的 "单阶段"对象检测模型的第五次迭代&#xff0c;旨在实时提供高速、高精度的结果&#xff0c;是世界上最受欢迎的视觉人工智能模型&#xff0c;代表了Ult…

Spring Boot RestTemplate请求证书问题

Spring Boot RestTemplate请求证书问题 场景报错描述原因解决补充赶紧跑路&#xff01; 场景 GG&#xff01;忙活了一个月的需求正式上线&#xff0c;第一天就嗷嗷报错&#xff0c;没一条数据是请求成功的。因为程序里插入了监控程序&#xff0c;监控程序报错&#xff0c;毕竟…

前端异步相关知识总结

目录 一、同步和异步简介 同步&#xff08;按顺序执行&#xff09; 异步&#xff08;不按顺序执行&#xff09; 异步出现的原因和需求 二、实现异步的方法 回调函数 Promise 生成器Generators/ yield async await 三、promise和 async await 区别 概念 两者的区别 …

政安晨:示例演绎TensorFlow的官方指南(一){基础知识}

为什么要示例演绎&#xff1f; 既然有了官方指南&#xff0c;咱们在官方指南上看看就可以了&#xff0c;为什么还要写示例演绎的文章呢&#xff1f; 其实对于初步了解TensorFlow的小伙伴们而言&#xff0c;示例演绎才是最重要的。 官方文档已经假定了您已经具备了相当合适的…

19. AUTOSAR网络管理系统(二)

目录 1.AUTOSAR网络管理系统 1.1 NM系统概述 1.2 CanNM状态机分析 2.小结 1.AUTOSAR网络管理系统 1.1 NM系统概述 经过上面宏观的分析,我们知道通过整车ECU的唤醒是多种多样的,因此抽象出一个模块来统一管理和协调不同总线(CAN、FlexRay等),对于软件分层解耦是十分有必…