当前位置: 首页 > 编程日记 > 正文

HDU 5616 Jam's balance(01背包)

题目网址:http://acm.hdu.edu.cn/showproblem.php?pid=5616

题目:

Jam's balance

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 1810    Accepted Submission(s): 754

Problem Description
Jim has a balance and N weights. (1N20)
The balance can only tell whether things on different side are the same weight.
Weights can be put on left side or right side arbitrarily.
Please tell whether the balance can measure an object of weight M.

Input

The first line is a integer T(1T5), means T test cases.
For each test case :
The first line is N, means the number of weights.
The second line are N number, i'th number wi(1wi100) means the i'th weight's weight is wi.
The third line is a number MM is the weight of the object being measured.
Output
You should output the "YES"or"NO".
Sample Input
1
2
1 4
3
2
4
5
Sample Output
NO
YES
YES
题意:
给若干个砝码和一个天平,再给若干个要称的重量,问是否能由以上的玛法和天平秤出。
思路:
因为砝码可以放在天平两侧,所以砝码重量之和以及重量之差 都能秤出来。所以状态转移分两个:
1.该重量大于等于当前遍历的砝码重量时:dp[j]=max(dp[j], dp[j-weight[i]]);
2.该重量小于当前遍历的砝码重量时:dp[j]=max(dp[j], dp[weight[i]-j]);
注意点是,要先将砝码的重量进行升序排序。以免漏掉第二种情况。
代码:
 1 #include <cstdio>
 2 #include <cstring>
 3 #include <algorithm>
 4 using namespace std;
 5 int main(){
 6     int t,n,m;
 7     int weight[205];
 8     int dp[20005];
 9     int sum;
10     scanf("%d",&t);
11     while (t--) {
12         scanf("%d",&n);
13         memset(dp, 0, sizeof(dp));
14         dp[0]=1;
15         sum=0;
16         for (int i=0; i<n; i++) {
17             scanf("%d",&weight[i]);
18             sum+=weight[i];
19         }
20         sort(weight, weight+n);
21         for (int i=0; i<n; i++) {
22             for (int j=sum; j>=0; j--) {
23                 if(j>=weight[i])dp[j]=max(dp[j], dp[j-weight[i]]);
24                 else dp[j]=max(dp[j], dp[weight[i]-j]);
25             }
26         }
27         scanf("%d",&m);
28         for (int i=0; i<m; i++) {
29             int w;
30             scanf("%d",&w);
31             printf("%s\n",dp[w]?"YES":"NO");
32         }
33     }
34     return 0;
35 }

转载于:https://www.cnblogs.com/uniles/p/7182243.html

相关文章:

datagrid DataFormatString

DataFormatString格式字符串 DataFormatString"{0:格式字符串}" 在DataFormatString 中的 {0} 表示数据本身&#xff0c;而在冒号后面的格式字符串代表所们希望数据显示的格式&#xff1b; 数字、货币格式&#xff1a;在指定的格式符号后可以指定小数所要显示的位数…

HashMap 和 Hashtable 的 6 个区别,最后一个没几个人知道!

HashMap 和 Hashtable 是 Java 开发程序员必须要掌握的&#xff0c;也是在各种 Java 面试场合中必须会问到的。 但你对这两者的区别了解有多少呢&#xff1f; 现在&#xff0c;栈长我给大家总结一下&#xff0c;或许有你不明朗的地方&#xff0c;在栈长的指点下都会拨开迷雾见晴…

自学笔记——Python内置的处理字符串的函数

序号函数描述1capitalize() 字符串的首字母变为大写2center&#xff08;width, fillchar&#xff09; 返回原来的字符串&#xff08;居中&#xff09;&#xff0c;并以空格填充至特定长度的字符串3count( str ,beg 0, end len(string) )计算出str在字符串中出现的字数&#x…

办公室28个经典赞美句子【转】

1.you look great today.&#xff08;你今天看上去很棒。&#xff09;【每天都可以用&#xff01;】2. you did a good job. &#xff08;你干得非常好。&#xff09;【国际最通用的表扬&#xff01;】3. we’re so proud of you.&#xff08;我们十分为你骄傲。&#xff09;【…

[源码和文档分享]基于java 的仿QQ聊天工具

一 需求分析 本系统是基于java开发的聊天室。有用户注册、用户登陆、修改密码、忘记密码、添加好友、用户聊天、群聊功能。如果服务器还没有启动&#xff0c;则客户端是不可以登陆、注册、忘记密码&#xff0c;如果在运行过程中&#xff0c;服务器断开则系统会有提示&#xff0…

错误: 编码 GBK 的不可映射字符 (0x80)

在我想要在命令行使用println输出一些中文的时候&#xff0c;发现编码出现错误 原因&#xff1a; java程序在编译的时候&#xff0c;需要使用JDK开发工具包中的JAVAC.EXE命令&#xff0c;而JDK开发工具包是国际版的&#xff0c;默认格式为UNICODE的编码格式。因此在默认情况下&…

HDU 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包)

传送门 Description 急&#xff01;灾区的食物依然短缺&#xff01;为了挽救灾区同胞的生命&#xff0c;心系灾区同胞的你准备自己采购一些粮食支援灾区&#xff0c;现在假设你一共有资金n元&#xff0c;而市场有m种大米&#xff0c;每种大米都是袋装产品&#xff0c;其价格不等…

A simple class to play sound on netcf (part 2)

在实际测试中发现上一片文章&#xff08;A simple class to play sound on netcf&#xff09;中介绍的播放声音的类在pda中运行正常&#xff0c;但却无法在pc中工作&#xff0c;简单分析了一下原因&#xff0c;发现是dll的问题&#xff0c;pc和pda播放声音时用的dll不同。pc中是…

SSL证书可以给多个域名使用吗?

欢迎访问网易云社区&#xff0c;了解更多网易技术产品运营经验从信任等级的角度来说&#xff0c;SSL证书主要分为三类&#xff1a;1.域名型https证书&#xff08;DVSSL&#xff09;:信任等级一般&#xff0c;只需验证网站的真实性便可颁发证书保护网站&#xff1b;2. 企业型htt…

ASP.NET性能调整之解决Server Too Busy错误

最近公司的一个ASP.NET站点频繁出现Server Too Busy错误&#xff0c;具体表现为页面响应慢、经常出现Server Too Busy异常&#xff1b;但实际上服务器的资源消耗却很低&#xff0c;CPU使用只有10%左右&#xff0c;非常奇怪。 该站点运行环境为Windows 2000&#xff0c;IIS5.0&a…

IDEA 格式化代码Reform Code快捷键无效

** 看着用起来这么舒服的IDEA快捷键&#xff0c;突然CtrlAltL怎么按都没有反应&#xff0c;瞬间就不香了** 不行&#xff0c;我要搞一下 解决办法 快捷键冲突 一边学习IDEA&#xff0c;一遍你听歌多舒服啊&#xff0c;就是这个东西——“”“网易云音乐&#xff08;当然或者其他…

ajax方法参数

jquery中的ajax方法参数总是记不住&#xff0c;这里记录一下。 1.url: 要求为String类型的参数&#xff0c;&#xff08;默认为当前页地址&#xff09;发送请求的地址。 2.type: 要求为String类型的参数&#xff0c;请求方式&#xff08;post或get&#xff09;默认为get。注意其…

“解决方案资源管理器”中不能自动选择正在编辑的文档

本来正在编辑的文档应该在“解决方案资源管理器”中自动选中的&#xff0c;但是我的VS2005机器好像没有这个功能&#xff0c;后来发现 “工具->选贤”里边的“项目和解决方案->常规”里边有一项“在解决方案资源管理器中跟踪活动项”&#xff0c;选中后问题解决。VS2003也…

打造属于自己的underscore系列 ( 一 )

underscore作为开发中比较常用的一个javascript工具库&#xff0c;提供了一套丰富的函数式编程功能&#xff0c;该库并没有拓展原有的javascript原生对象&#xff0c;而是在自定义的_对象上&#xff0c;提供了100多个方法函数。在这个系列中&#xff0c;将从uderscore源码角度&…

Java案例——字符串拼接

Java案例——字符串拼接案例 1.案例需求 定义一个方法&#xff0c;把int数组中的数据按照指定的格式拼接成一个字符串返回&#xff0c;调用该方法&#xff0c;并在控制台输出结果 例如&#xff0c;数字为int[] arr {1,2,3};执行方法后的输出结果为&#xff1a;[1,2,3] 2.思路…

SQL同时删除两张表中的数据

DELETE user,orders from user,orders where user.idorders.user_id AND user.id#{id}; 转载于:https://www.cnblogs.com/duneF/p/7196472.html

安全与用户输入

用户数据&#xff0c;就是任何种类的输入&#xff08;来自于 Web 请求或者 URL 中的数据&#xff0c;输入在 Microsoft Windows 窗体应用程序的控件中的数据&#xff0c;等等&#xff09;&#xff0c;它能够对代码产生影响&#xff0c;因为这些数据经常被直接当成参数来使用并且…

谁能搞定中国的文艺复兴,我就能搞定中国的政治改革

文化--------------经济------------------政治转载于:https://blog.51cto.com/73945/12249

构造函数以及this

实际上构造函数与普通的函数并没有区别&#xff0c;所以一般在开发中会使用大驼峰命名规则来区别普通的函数&#xff0c;构造函数实际上是通过返回一个this值来完成构造函数的创建的. 这个rutern this的操作由new这个操作符来完成&#xff0c;当然个人也可以手动来设置return的…

java案例——字符串反转

java案例——字符串反转 1.需求&#xff1a; 定义一个方法&#xff0c;实现字符串反转。键盘录入一个字符串&#xff0c;调用该方法后&#xff0c;在控制台输出结果 例如&#xff0c;键盘录入abc,输出结果cba2.思路&#xff1a; 1.键盘录入一个字符串&#xff0c;用Scanner实…

Jetson tk1 安装 CUDA,ROS,OpenCV和kinect2以及刷机以及ssh远程控制

我的jetson tk1的系统是&#xff1a;LTR21.3&#xff0c;ubuntu14.04。本文仅仅是个人总结&#xff0c;亲测成功。 注意&#xff1a;如果你是使用校园网进行安装的话&#xff0c;有很多源是没办法访问的&#xff0c;安装的时候就会出现很多问题&#xff0c;所以&#xff0c;尽量…

Refactor!™ for ASP.NET--ASP.NET代码重构插件

Teaching Demo: http://www.devexpress.com/Products/NET/IDETools/CodeRush/Training.xml有些功能在JBuilder2005中早就有了。大家了解一下吧&#xff0c;比较不错。Refactor! is freely available to all ASP.NET 2.0 developers and offers a comprehensive suite of tools …

面向对象的程序开发技术C++教学课件系列之四

面向对象的程序开发技术C教学课件系列之四转载于:https://blog.51cto.com/hnxdd/13205

python自动华 (十四)

Python自动化 【第十四篇】&#xff1a;HTML介绍 本节内容&#xff1a; Html概述HTML文档常用标签2. CSS 概述CSS选择器CSS常用属性1.HTML 1.1概述 HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写&#xff0c;他是一种制作万维网页面标准语言&#xff08;标记&a…

一些有趣的题目(java)持续更新

有趣的编程题1.面试题2.某公司面试题1.面试题 此处为正确的代码 package Java.king01.Test;class MicrosoftTest {public static void main(String[] args) {int[] arr new int[]{12,3,3,34,56,78,432};for(int i arr.length - 1;i > 0;i--){arr[i] arr[i]/arr[0];}for(…

lunix开放端口

以mysql服的3306端口为例。 1、直接打开端口&#xff1a;iptables -I INPUT -p tcp --dport 3306 -j ACCEPT 2、永久打开某端口首先&#xff0c;用vim打开防火墙配置文件&#xff1a;vim /etc/sysconfig/iptables然后&#xff0c;在iptables文件内容中加入如下内容:-A RH-Firew…

开机运行记事本怎么回事

1.删除文件%SystemRoot%\system32\wincfgs.exe%SystemRoot%\KB20060111.exe2.清除移动存储设备病毒连接好usb设备后&#xff0c;打开我的电脑&#xff0c;点击右键选择打开&#xff08;不要直接打开或点“open”&#xff09;&#xff0c;然后打开菜单栏的“工具--文件夹选项--查…

IDEA快捷键及基本使用方法

IDEA常用设置一级目录快捷键导包&#xff1a;自动导包设置开启自动编译按住Ctrl之后滑动鼠标滚轮可以实现代码自由缩放一级目录 快捷键 导包&#xff1a; 1.手动导包 import java.util.Scanner; 2. 快捷键导包 Alt Enter 3.自动导包快捷键功能CtrlD复制光标所在行到下一行…

php 前台生成多维数组 后台批量添加

同一个地方绊倒两次&#xff0c;记录一下哈 1&#xff09;前台表单&#xff0c;看 name 1 <div class"tab-pane row " id"tab-1" >2 <input type"hidden" name"data[1][Type]" value class"form-control" id&q…

plsql循环语句

循环结构有loop。。end&#xff0c;while和for循环 loop基本结构 LOOP 要执行的语句; EXIT WHEN <条件语句> /*条件满足&#xff0c;退出循环语句*/ END LOOP; declare int number(4) : 1;begin loop dbms_output.put_line(我是||int|||); int : int 1; exit when int …