题目

有一天,他在宿舍里无意中发现了一个天平!这个天平很奇怪,有n个完好的砝码,但是没有游码。盾神为他的发现兴奋不已!于是他准备去称一称自己的东西。他准备好了m种物品去称。神奇的是,盾神一早就知道这m种物品的重量,他现在是想看看这个天平能不能称出这些物品出来。但是盾神稍微想了1秒钟以后就觉得这个问题太无聊了,于是就丢给了你。

第一行为两个数,n和m。
第二行为n个数,表示这n个砝码的重量。
第三行为m个数,表示这m个物品的重量。

数据规模和约定
1< =n< =24, 1< =m< =10.

输出
输出m行,对于第i行,如果第i个物品能被称出,输出YES否则输出NO。

样例输入

4 2
1 2 4 8
15 16

样例输出

YES
NO

解题思路

本题本质是求子集的和各种情况。为了减少遍历的次数,采用hash散列的思想存储输入砝码重量能够称出所有物品重量;为计算输入砝码重量能够称出所有物品重量,采用读入一个新的砝码质量,遍历之前所有可能情况,与之求和、做差的方法。

易错点

砝码可以和物品放在同一边做差求重量,也可以放在另一边,利用砝码重量和估计物品重量。

代码

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int hash[10000000];int main()
{int m,n,temp,k,num = 0;scanf("%d %d",&n,&m);int a[20000000],i,j;for (i=0;i<n;i++){scanf("%d",&a[num]);hash[a[num]] = 1;temp = num++;for (j=0;j<temp;j++){a[num] = a[temp]+a[j];hash[a[num]] = 1;num++;a[num] = abs(a[temp]-a[j]);hash[a[num]] = 1;num++;}}for (i=0;i<m;i++){scanf("%d",&temp);if (hash[temp]==0)printf("NO\n");elseprintf("YES\n");}return 0;
}

题目 1548: 盾神与砝码称重相关推荐

  1. 算法提高 盾神与砝码称重

    问题描述 有一天,他在宿舍里无意中发现了一个天平!这个天平很奇怪,有n个完好的砝码,但是没有游码.盾神为他的发现兴奋不已!于是他准备去称一称自己的东西.他准备好了m种物品去称.神奇的是,盾神一早就知道 ...

  2. 盾神与砝码称重java_[蓝桥杯][算法提高VIP]盾神与砝码称重-题解(Java代码)

    ###### ~~最开始写的时候被搞蒙了,根本没考虑到砝码的放置会有三种情况,我还以为只能放在物品的另一边,现在才想出来~~ ```java import java.util.Scanner; pub ...

  3. 洛谷 P2347 砝码称重

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

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

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

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

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

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

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

  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. 第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-936 砝码称重

    第十四届蓝桥杯集训--练习解题阶段(无序阶段)-ALGO-936 砝码称重 目录 第十四届蓝桥杯集训--练习解题阶段(无序阶段)-ALGO-936 砝码称重 前言 关于数学的疑问 算法训练 砝码称重 ...

  10. 【题解】【蓝桥杯】试题 历届真题 砝码称重【第十二届】【省赛】【B组】

    题目链接 试题 历届真题 砝码称重[第十二届][省赛][B组] 题目描述 解题思路 暴力,两个map,分别存储当前能称出的重量和遍历时用于计算的重量 需要注意的三点是 abs函数是在math.h里面的 ...

最新文章

  1. SpringSecurity安全验证中文乱码问题
  2. 我是如何有效的避免测试漏测?
  3. 记GMIC 2014
  4. Spring Cloud Eureka(二)注册一个服务的提供者
  5. 一篇文章,可以同时拥有4份收益,你知道吗?
  6. 第五章---字符串+序列转化
  7. 这个PHP无解深坑,你能解出来吗?(听说能解出来的都很秀)
  8. bcd 初始化库系统卷失败_开源IP地址管理系统,告别传统IP统计方式(安装部署篇)
  9. CANoe+Carmaker联合仿真测试
  10. java生成docx文件、pdf文件、docx转pdf、docx转图片 pdf转图片工具
  11. 前端和后端分工的三种模式
  12. sapi 实现语音朗读
  13. 夏季 肝病患者养生保健重点在哪 请详解
  14. 【css】i标签icon图标旋转样式
  15. idea的安装及基础设置
  16. 动作捕捉技术在四足仿生机器人研究中的应用
  17. ZOJ-1455 Schedule Problem 差分约束
  18. vbs mysql 读数据库_VBS操作数据库与控件
  19. vmware 15.5.1 ubuntu 16.04 罗技无线鼠标 滚轮不能用
  20. 2.25嵌入式课程学习总结

热门文章

  1. 流媒体直播系统由哪几部分组成?
  2. 方便面又好卖了!康师傅天猫618狂增10倍,还说这只是起点
  3. KP26--输入成本中心的标准作业量(活动类型价格)
  4. grub4dos linux live,grub4dos启动菜单示例
  5. Facebook自动化测试札记
  6. ffmpeg 视频转码
  7. 重装Linux系统后的软件安装 及 常见操作_持续更新...
  8. october php,关于Laravel之October的安装配置过程
  9. cmd的注释符号是什么?
  10. 网易云课堂-数据结构