题目 1548: 盾神与砝码称重
题目
有一天,他在宿舍里无意中发现了一个天平!这个天平很奇怪,有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: 盾神与砝码称重相关推荐
- 算法提高 盾神与砝码称重
问题描述 有一天,他在宿舍里无意中发现了一个天平!这个天平很奇怪,有n个完好的砝码,但是没有游码.盾神为他的发现兴奋不已!于是他准备去称一称自己的东西.他准备好了m种物品去称.神奇的是,盾神一早就知道 ...
- 盾神与砝码称重java_[蓝桥杯][算法提高VIP]盾神与砝码称重-题解(Java代码)
###### ~~最开始写的时候被搞蒙了,根本没考虑到砝码的放置会有三种情况,我还以为只能放在物品的另一边,现在才想出来~~ ```java import java.util.Scanner; pub ...
- 洛谷 P2347 砝码称重
P2347 砝码称重 题目描述 设有1g.2g.3g.5g.10g.20g的砝码各若干枚(其总重<=1000), 输入输出格式 输入格式: 输入方式:a1 a2 a3 a4 a5 a6 (表示1 ...
- 【DP】砝码称重 (ssl 1072)
砝码称重 ssl 1072 题目大意: 有6种砝码,每种的个数分别为a1,a2,a3,a4,a5,a6,请问可以平出多少种重量(0除外) Description 设有1g.2g.3g.5g.10g.2 ...
- 【OJ8756】砝码称重V2,可达性多重背包
砝码称重V2 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 设有1g.2g.3g.5g.10g.20g的砝码各若干枚(其总重<=100,000),要求:计 ...
- 【codevs2144】砝码称重2,哈希什么的都去死吧
砝码称重 2 时间限制: 1 s 空间限制: 16000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 有n个砝码,现在要称一个质量为m的物体,请问最少需要挑出几个 ...
- 51NOD 1449 砝码称重(贪心+进制思想)
题目连接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1449 1449 砝码称重 题目来源: CodeForces 基 ...
- 第十二届蓝桥杯省赛 C/C++大学B组 试题G:砝码称重
试题题目: 本题为编程题第二题 解题思路: 方法一:暴力求解 1.分析 首先利用数组W[N]W[N]W[N]记录NNN块砝码的质量. 模拟放取过程.先取第一块砝码放在天平上,再取第二块砝码 ...
- 第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-936 砝码称重
第十四届蓝桥杯集训--练习解题阶段(无序阶段)-ALGO-936 砝码称重 目录 第十四届蓝桥杯集训--练习解题阶段(无序阶段)-ALGO-936 砝码称重 前言 关于数学的疑问 算法训练 砝码称重 ...
- 【题解】【蓝桥杯】试题 历届真题 砝码称重【第十二届】【省赛】【B组】
题目链接 试题 历届真题 砝码称重[第十二届][省赛][B组] 题目描述 解题思路 暴力,两个map,分别存储当前能称出的重量和遍历时用于计算的重量 需要注意的三点是 abs函数是在math.h里面的 ...
最新文章
- SpringSecurity安全验证中文乱码问题
- 我是如何有效的避免测试漏测?
- 记GMIC 2014
- Spring Cloud Eureka(二)注册一个服务的提供者
- 一篇文章,可以同时拥有4份收益,你知道吗?
- 第五章---字符串+序列转化
- 这个PHP无解深坑,你能解出来吗?(听说能解出来的都很秀)
- bcd 初始化库系统卷失败_开源IP地址管理系统,告别传统IP统计方式(安装部署篇)
- CANoe+Carmaker联合仿真测试
- java生成docx文件、pdf文件、docx转pdf、docx转图片 pdf转图片工具
- 前端和后端分工的三种模式
- sapi 实现语音朗读
- 夏季 肝病患者养生保健重点在哪 请详解
- 【css】i标签icon图标旋转样式
- idea的安装及基础设置
- 动作捕捉技术在四足仿生机器人研究中的应用
- ZOJ-1455 Schedule Problem 差分约束
- vbs mysql 读数据库_VBS操作数据库与控件
- vmware 15.5.1 ubuntu 16.04 罗技无线鼠标 滚轮不能用
- 2.25嵌入式课程学习总结