题目:

题目描述

现有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

砝码称重 洛谷 1441相关推荐

  1. 洛谷 P2347 砝码称重

    P2347 砝码称重 题目描述 设有1g.2g.3g.5g.10g.20g的砝码各若干枚(其总重<=1000), 输入输出格式 输入格式: 输入方式:a1 a2 a3 a4 a5 a6 (表示1 ...

  2. 砝码称重【第十二届蓝桥杯】【省赛】【B组】

    砝码称重[第十二届蓝桥杯][省赛][B组] Description 你有一架天平和N个砝码,这N个砝码重量依次是W1.W2,-WN 请你计算一共可以称出多少种不同的重量? 注意砝码可以放在天平两边. ...

  3. 【DP】砝码称重 (ssl 1072)

    砝码称重 ssl 1072 题目大意: 有6种砝码,每种的个数分别为a1,a2,a3,a4,a5,a6,请问可以平出多少种重量(0除外) Description 设有1g.2g.3g.5g.10g.2 ...

  4. 【OJ8756】砝码称重V2,可达性多重背包

    砝码称重V2 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 设有1g.2g.3g.5g.10g.20g的砝码各若干枚(其总重<=100,000),要求:计 ...

  5. 【codevs2144】砝码称重2,哈希什么的都去死吧

    砝码称重 2 时间限制: 1 s 空间限制: 16000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 有n个砝码,现在要称一个质量为m的物体,请问最少需要挑出几个 ...

  6. Bailian4141 砝码称重【DP】

    4141:砝码称重 总时间限制: 1000ms 内存限制: 65536kB 描述 设有1g.2g.3g.5g.10g.20g的砝码各若干枚(其总重<=1000),要求:计算用这些砝码能称出的不同 ...

  7. 51NOD 1449 砝码称重(贪心+进制思想)

    题目连接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1449 1449 砝码称重 题目来源: CodeForces 基 ...

  8. 第十二届蓝桥杯省赛 C/C++大学B组 试题G:砝码称重

    试题题目: 本题为编程题第二题 解题思路: 方法一:暴力求解 1.分析    首先利用数组W[N]W[N]W[N]记录NNN块砝码的质量.    模拟放取过程.先取第一块砝码放在天平上,再取第二块砝码 ...

  9. 【SSL】1072砝码称重

    [SSL]1072砝码称重 Time Limit:1000MS Memory Limit:65536K Description 设有1g.2g.3g.5g.10g.20g的砝码各若干枚(其总重< ...

最新文章

  1. Transformer 架构逐层功能介绍和详细解释
  2. [转载]datatable中只取前7条数据
  3. WP8.1开发中复杂JSON绑定数据时的方法
  4. 报错:ModuleNotFoundError: No module named ‘cv_bridge‘,以及在ROS是如何安装cv_bridge库包
  5. Hyper-V 2016 系列教程15 Hyper-V Cmdlets PowerShell 命令提示符
  6. 解决递归中的重复计算问题
  7. android编程 自动裁剪图片,Android编程实现调用相册、相机及拍照后直接裁剪的方法...
  8. SpringMVC+hibernate+mysql+EASYUI的登陆+CRUD
  9. 【新手宝典】一篇博文带萌新建站并了解建站体系流程和对萌新友好的便捷方式,这篇博文很有可能是你的启蒙文
  10. 数据库设计的核心原则 外键的设计 提高插入数据速度
  11. 猜拳游戏html,JavaScript中实现猜拳小游戏
  12. 我连饭也顾不上HAO3GP整站源码
  13. 熵的理解(玻尔兹曼分布)
  14. 73. 简化 CSS 选择符
  15. 从著名的list_head看linux内核中OO 从Unix分层内核栈以及中断处理看Linux内核的另类
  16. x264-VBV(video buffering verifier)
  17. ImageMagicK之合成图片
  18. s3c2410 2.6.22.1内核移植
  19. 架构师素养及从小菜进阶架构(CTO)的书籍【转】
  20. ei eo 功能类型_[转载]CMMI之功能点估算法:EI、EQ和EO

热门文章

  1. python import 类 继承_python学习之类的继承
  2. moment格式换时间_不一样的日期、时间转换(moment.js)
  3. python多维数组运用_使用Python将文件读入多维数组
  4. python展开 c函数中的宏预处理_C中的预处理宏
  5. 统计文件里有多少个字符(only a simple cpp)
  6. 操作系统上机作业--根据莱布尼兹级数计算PI(1)(多线程)
  7. 160 - 34 Cruehead.3
  8. 《源码分析转载收藏向—数据库内核月报》
  9. 的使用_面部精华使用方法和使用步骤;
  10. uva 1153—— Keep the Customer Satisfied