砝码称重 洛谷 1441

题目:

题目描述

现有n个砝码,重量分别为a1,a2,a3,……,an,在去掉m个砝码后,问最多能称量出多少不同的重量(不包括0)。

输入输出格式

输入格式:

 

输入文件weight.in的第1行为有两个整数n和m,用空格分隔

第2行有n个正整数a1,a2,a3,……,an,表示每个砝码的重量。

 

输出格式:

 

输出文件weight.out仅包括1个整数,为最多能称量出的重量。

 

输入输出样例

输入样例#1:
3 1
1 2 2
输出样例#1:
3

说明

【样例说明】

在去掉一个重量为2的砝码后,能称量出1,2,3共3种重量。

【数据规模】

对于20%的数据,m=0;

对于50%的数据,m≤1;

对于50%的数据,n≤10;

对于100%的数据,n≤20,m≤4,m<n,ai≤100。

 

#include <iostream> 
#include <cstring>
using namespace std;
int n, m, MAX = 0, answer = 0;
int Weight[21];
int F[20001];
bool judge[21];
int Find()//判断每一种重量是否存在,因为所产生的所有的值只可能是1~maxx之间的数
{int total = 0;memset(F, 0, sizeof(F));F[0] = 1;for (int i = 1; i <= n; i++){if (!judge[i]){for (int j = MAX; j >= Weight[i]; j--){F[j] += F[j - Weight[i]];}}}for (int i = 1; i <= MAX; i++){if (F[i]){total++;}}answer = max(answer, total);
}
void Search(int counts, int pos)
{if (counts == m + 1){Find();}else{if (pos > n){return ;//从1~n来一遍}judge[pos] = true;Search(counts + 1, pos + 1);//某一个数字在组合的过程中只有两种可能,一种是选,一种是不选,所以会出现两种情况,故搜两次
judge[pos]
= false;Search(counts, pos + 1);} } int main() {cin >> n >> m;for (int i = 1; i <= n; i++){cin >> Weight[i];MAX += Weight[i];//计算出总重量}if (m == 0){Find();}Search(1, 1);cout << answer << endl; }

 

转载于:https://www.cnblogs.com/ZDHYXZ/p/6857244.html

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

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

相关文章

计算机音乐 phd,美国大学音乐(Music)专业PhD排名

为方便学生们选校&#xff0c;总结整理出NRC公布的美国大学音乐(Music)专业PhD排名&#xff0c;供学生们参考。排名大学Regres QualitySurvey QualityStudent OutcomesJobs at GradDiversity1-1Indiana University-BloomingtonFolklore1-11-136-5775%4-82-3Harvard UniversityM…

android开发使用c+_如何在Android项目中开始使用C ++代码

android开发使用cby Onur Tuna通过Onur Tuna 如何在Android项目中开始使用C 代码 (How to start using C code in your Android project) Last year I gave a talk at the GDG DevFest in Ankara, Turkey. I have been planning to share that talk here ever since. Now that…

PowerShell与活动目录

自从发布以来&#xff0c;Windows PowerShell已经成为Windows自动化平台的选择。它的强大和灵活已经在许多环境中被许多Windows技术所证明。不幸的是&#xff0c;在活动目录支持方面&#xff0c;PowerShell 1并没有什么可以炫耀。从基础角度&#xff0c;微软提供了ADSI“类型加…

408计算机组成原理有汇编吗,2021考研408计算机组成原理习题:计算机系统概述

10月是2021考研学子们备考的突破提升阶段&#xff0c;我们在复习专业课时&#xff0c;需要结合一定量的练习题来查漏补缺。接下来&#xff0c;小编为计算机考研考生们&#xff0c;带来了408统考计算机组成原理习题:计算机系统概述&#xff0c;供考生参考。2021考研408计算机组成…

react 文本框_React自动完成文本框

react 文本框In this React tutorial for beginners you will learn to create a basic React app and an autocomplete text box React component.在这个面向初学者的React教程中&#xff0c;您将学习创建一个基本的React应用程序和一个自动完成的文本框React组件。 This vid…

MyBatis-Plus入门Demo详解

一.简介: 引用官方文档(本文主要参考官方文档示例): MyBatis-Plus&#xff08;简称 MP&#xff09;是一个 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。 愿景 我们的愿景是成为 MyBatis 最好的搭档&#xff0c;就…

RHEL 5基础篇—常见系统启动类故障

常见系统启动类故障 在linux系统的启动过程中&#xff0c;涉及到MBR主引导记录、GRUB启动菜单、系统初始化配置文件inittab等各方面&#xff0c;其中任何一个环节出现故障都有可能会导致系统启动失败。因此一定要注意做好相关文件的备份工作。 1、MBR扇区故障 MBR引导记录位…

hcharts生成图表

借助hcharts插件&#xff0c;可以很方便地在模板页面中生成图表。类似插件还有echarts。 补充。。。 转载于:https://www.cnblogs.com/Forever77/p/11144346.html

css empty_何时使用:empty和:blank CSS伪选择器

css emptyI made a terrible mistake when I tweeted about :empty and :blank a while ago. I said that :empty wasn’t useful, and :blank is much more useful than :empty.不久前我在Twitter上发布:empty和:blank时&#xff0c;我犯了一个严重的错误。 我说过:empty没用&…

浙江大学计算机系统结构,高级计算机体系结构-浙江大学计算机系统结构室.pdf...

高级计算机体系结构-浙江大学计算机系统结构室高级计算机体系结构陈文智 浙江大学计算机学院chenwzzju.edu.cn2014年9月11.1 计算机技术发展综述(1)1946年: 在二次世界大战期间研制成功的世界上第一台电子计算机ENIAC(Electronic Numerical Intergrator andCalculator)正式对…

PVS 6.1 Configuring Services Failed

好久没有更新了&#xff0c;嘿嘿&#xff0c;更新一个。 项目中遇到一个问题&#xff0c;PVS安装到最后一步报错&#xff0c;如下图&#xff1a; 环境&#xff1a;PVS 6.1&#xff0c;数据库是SQL Server 2005 SP4 查了一下文档&#xff0c;PVS 6.1支持SQL Server 2005 SP4 排查…

javascript动态创建table

function createTable(parentNode,headres,datas){//创建表格var table document.createElement("table");//将表格追加到父容器中parentNode.appendChild(table);//设置table的样式table.cellSpacing 0;table.cellPadding 0;table.border "1px";//创建…

leetcode 234. 回文链表(快慢指针+链表倒置)

请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 代码 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val x; }* }*/…

面试小问题——Object中有哪些常用方法?

一、equals方法 Object类中的equals方法用于检测一个对象是否等于另外一个对象。Java语言规范要求equals方法具有下面的特性&#xff1a; &#xff08;1&#xff09;自反性&#xff1a;对于任何非空引用x&#xff0c;x.equals(x)应该返回true &#xff08;2&#xff09;对称性&…

职称计算机证书 评中级职称,软考证书如何申请评职称及职称申请流程的详细介绍...

我们很多考友参加软考。比如信息系统项目管理师和系统集成项目管理工程师考试&#xff0c;目的都是为了评职称&#xff0c;那么在拿到软考证书后&#xff0c;很多人最关心的一个问题就是关于职称评聘问题&#xff0c;今天就以软考证书如何申请评职称及职称申请流程的详细介绍&a…

播客51:妈妈可以编码的创始人埃里卡·彼得森(Erica Peterson)

On todays episode of the freeCodeCamp.org podcast, Abbey Rennemeyer chats with Erica Peterson, a founder, entrepreneur, and mother of two who lives and works in Pittsburg, Pennsylvania.在freeCodeCamp.org播客的今天节目中&#xff0c;Abbey Rennemeyer与Erica P…

leetcode 1024. 视频拼接(dp/贪心)

你将会获得一系列视频片段&#xff0c;这些片段来自于一项持续时长为 T 秒的体育赛事。这些片段可能有所重叠&#xff0c;也可能长度不一。 视频片段 clips[i] 都用区间进行表示&#xff1a;开始于 clips[i][0] 并于 clips[i][1] 结束。我们甚至可以对这些片段自由地再剪辑&am…

java实现时钟方法汇总

import java.awt.Dimension; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Timer; import java.util.TimerTask;import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; //第一种比较…

js中注册标识符流程

注册分为三个阶段&#xff1a;分别是注册阶段&#xff0c;函数处理阶段&#xff0c;变量处理阶段&#xff1b;这三个阶段有先后顺序的。&#xff08;注&#xff1a;这三个阶段的名字没有权威性&#xff0c;是作者为了方便记忆自己起的名字&#xff09; 注册阶段的特征 1.此时不…

jsp论坛网站模版_网站关键词优化怎么做

说到网站关键词优化&#xff0c;大多企业都很陌生&#xff0c;建站公司说的关键词优化头头是道。跟听天书似的&#xff0c;51商务网小编为大家总结的网站优化方法希望可以帮到大家&#xff0c;首先要说的是做网站优化第一点就是要有耐心&#xff0c;如果很长时间没有收录的话&a…