HDU 5616 Jam's balance(Jam的天平)
HDU 5616 Jam's balance(Jam的天平)
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Problem Description - 题目描述
Jim has a balance and N weights. (1≤N≤20)
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.
Jim 有一个天平和N块砝码。(≤N≤)
使用天平只能得知两端质量是否相等。
砝码可以放置在左右任意一端。
判断天平能否测量质量为M的物体。
CN
Input - 输入
The first line is a integer T(1≤T≤5), 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(1≤wi≤100)means the i'th weight's weight is wi.
The third line is a number M. M is the weight of the object being measured.
第一行有一个整数T(≤T≤),表示测试用例数。
对于每组测试用例:
第一行为N,表示砝码数。
第二行有N个数,第i个数wi(≤wi≤)表示
第三行有一个整数M。M为待测物体质量。
CN
Output - 输出
You should output the "YES"or"NO".
输出"YES"or"NO"。
CN
Sample Input - 输入样例
1
2
1 4
3
2
4
5
Sample Output - 输出样例
NO
YES
YES
Hint - 提示
For the Case 1:Put the 4 weight alone
For the Case 2:Put the 4 weight and 1 weight on both side
例子1:一端放置4
例子2:放置4和1在同一端
CN
题解
DP水题,先算+,再算-,没了。
代码 C++
#include <cstdio>
#include <cstring>
#define MX 1500
bool dp[MX];
int main() {
int t, n, i, j, data[];
scanf("%d", &t);
while (t--) {
scanf("%d", &n);
for (i = ; i < n; ++i) scanf("%d", data + i);
memset(dp, , sizeof dp); dp[] = ;
for (i = ; i < n; ++i) {
for (j = MX; ~j; --j) if (dp[j]) dp[j + data[i]] = ;
}
for (i = ; i < n; ++i) {
for (j = data[i]; j < MX; ++j) if (dp[j]) dp[j - data[i]] = ;
}
scanf("%d", &n);
for (i = ; i < n; ++i) {
scanf("%d", &j);
dp[j] ? puts("YES") : puts("NO");
}
}
return ;
}
HDU 5616 Jam's balance(Jam的天平)的更多相关文章
- HDU 5616 Jam's balance(DP)
题目网址:http://acm.hdu.edu.cn/showproblem.php?pid=5616 题目: Jam's balance Time Limit: 2000/1000 MS (Java ...
- HDU 5616 Jam's balance(01背包)
题目网址:http://acm.hdu.edu.cn/showproblem.php?pid=5616 题目: Jam's balance Time Limit: 2000/1000 MS (Java ...
- HDU 5616 Jam's balance 背包DP
Jam's balance Problem Description Jim has a balance and N weights. (1≤N≤20)The balance can only tell ...
- hdu 5616
Jam's balance Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Tot ...
- hdu 5616 Jam's balance 正反背包+转换
http://acm.hdu.edu.cn/showproblem.php?pid=5616 思路 题目中蕴含着两种需要计算的重量 1. 从所有的砝码中挑出任意种2.(转换的思想)在天平的两端都挑出这 ...
- HDU 5616:Jam's balance(背包DP)
http://acm.hdu.edu.cn/showproblem.php?pid=5616 题意:有n个物品,每个重量为w[i],有一个天平,你可以把物品放在天平的左边或者右边,接下来m个询问,问是 ...
- Jam's balance HDU - 5616 (01背包基础题)
Jim has a balance and N weights. (1≤N≤20) The balance can only tell whether things on different side ...
- hdu 5616 Jam's balance(dp 正反01背包)
来自官方题解: AC代码: #pragma comment(linker, "/STACK:1024000000,1024000000") #include<iostream ...
- HDU 5616 Jam's balance
背包.dp[i]=1表示i这种差值能被组合出来,差值有负数,所以用sum表示0,0表示-sum,2*sum表示sum. 询问X的时候,只需看dp[sum+X]或者dp[sum-X]是否有一个为1,注意 ...
随机推荐
- JMeter学习-042-JMeter BeanShell 脚本应用实例之正则应用:正则提取,批量获取测试数据
特别声明:本示例中,涉及的脚本及通过脚本获取的数据,仅可作为学习使用,禁止任何商业用途.若因使用人非法使用而构成违法或犯罪,由具体违法或犯罪的使用人自行承担.与本人及技术博客无关. 实际测试过程中经常 ...
- 创建docker公共仓库
1.注册公共仓库的账号 https://hub.docker.com 账号:user-a 密码:pwd 2.Linux中登录docker公共仓库 docker login 3.上传一个docker镜像 ...
- zabbix实现自定义监控
实现自定义监控项实例 .创建主机组 .创建主机 .创建监控项 .到需要监控的主机的agent中添加自定义的监控项目 cd /etc/zabbix/zabbix_agentd.d vi userpara ...
- win10配置java环境变量,解决javac不是内部或外部命令等问题
win10配置java环境变量,解决javac不是内部或外部命令等问题 https://www.cnblogs.com/qianji/p/6402690.html
- com.mysql.jdbc.connection和java.sql.connection的区别
com.mysql.jdbc.Connection 是mysql自己的接口 针对于对mysql的出来,java.sql.Connection 这是一个公共的接口包括对mysql的支持oracle,sq ...
- [js]javascript索引
js&jq总结的还是挺棒的: http://www.cnblogs.com/yuanchenqi/articles/5980312.html http://www.cnblogs.com/yu ...
- pycharm Python Console调试 & django 调试
1.设置断点,然后debug 2.如果在运行中想修改变量,可以直接在pycharm中修改 如将列表的 13改成3,然后选中 Excuting Selection in console ...
- bootstrap引入
方法一: 注意:引入js时需先引入jQuery 1.在bootstrap中文网上下载源码,解压到路径 (<E:\Lern\bootstrap>) 2 ...
- 远程Gitlab新建的分支在IDEA里不显示
cmd命令打开dos命令窗口,进入项目文件所在目录 (**TIPS:在资源管理器的地址栏里直接输入cmd,就会打开命令窗口,并且此时命令窗口显示的路径就是当前路径)git branch -a:可以查看 ...
- git备注
下拉仓库 git clone ""建立本地分支 git checkout -b "分支名字" 修改代码以后切换到主分支 git checkout master更 ...