来自官方题解:

AC代码:

 1 #pragma comment(linker, "/STACK:1024000000,1024000000")
 2 #include<iostream>
 3 #include<cstdio>
 4 #include<cstring>
 5 #include<cmath>
 6 #include<math.h>
 7 #include<algorithm>
 8 #include<queue>
 9 #include<set>
10 #include<bitset>
11 #include<map>
12 #include<vector>
13 #include<stdlib.h>
14 using namespace std;
15 #define ll long long
16 #define eps 1e-10
17 #define MOD 1000000007
18 #define N 26
19 #define M 2006
20 #define inf 1e12
21 int n,a[N];
22 int dp[M];
23 int main()
24 {
25     int t;
26     scanf("%d",&t);
27     while(t--){
28         memset(dp,0,sizeof(dp));
29         scanf("%d",&n);
30         int sum=0;
31         for(int i=0;i<n;i++){
32             scanf("%d",&a[i]);
33             sum+=a[i];
34         }
35         dp[0]=1;
36         for(int i=0;i<n;i++){
37             for(int j=sum;j>=a[i];j--){
38                 dp[j]|=dp[j-a[i]];
39             }
40         }
41
42         for(int i=0;i<n;i++){
43             for(int j=0;j+a[i]<=sum;j++){
44                 dp[j]|=dp[j+a[i]];
45             }
46         }
47
48         int m;
49         scanf("%d",&m);
50         while(m--){
51             int weight;
52             scanf("%d",&weight);
53             if(dp[weight]){
54                 printf("YES\n");
55             }else{
56                 printf("NO\n");
57             }
58         }
59
60     }
61     return 0;
62 }

View Code

hdu 5616 Jam's balance(dp 正反01背包)相关推荐

  1. HDU 5616 Jam's balance(01背包)

    题目网址:http://acm.hdu.edu.cn/showproblem.php?pid=5616 题目: Jam's balance Time Limit: 2000/1000 MS (Java ...

  2. hdu 5616 Jam's balance(简单dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5616 解题思路: 动态规划思想:dp[i][j]表示前i个数通过加减法是否可以等于j,如果为1,则表示 ...

  3. HDU 2955 Robberies(概率DP,01背包)题解

    题意:给出规定的最高被抓概率m,银行数量n,然后给出每个银行被抓概率和钱,问你不超过m最多能拿多少钱 思路:一道好像能直接01背包的题,但是有些不同.按照以往的逻辑,dp[i]都是代表i代价能拿的最高 ...

  4. hdu 5616 Jam's balance 正反背包+转换

    http://acm.hdu.edu.cn/showproblem.php?pid=5616 思路 题目中蕴含着两种需要计算的重量 1. 从所有的砝码中挑出任意种 2.(转换的思想)在天平的两端都挑出 ...

  5. 【HDU - 2546】饭卡 (dp,0-1背包,贪心思想)

    电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够).所以大家 ...

  6. 【POJ - 3211】Washing Clothes (dp,0-1背包中点问题)

    题干: Dearboy was so busy recently that now he has piles of clothes to wash. Luckily, he has a beautif ...

  7. 【 POJ - 3628 】Bookshelf 2(dfs 或 dp,0-1背包)

    题干: Farmer John recently bought another bookshelf for the cow library, but the shelf is getting fill ...

  8. 【nyoj-456】 邮票分你一半 (dp,0-1背包的中点问题)

    题干: 邮票分你一半 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 小珂最近收集了些邮票,他想把其中的一些给他的好朋友小明.每张邮票上都有分值,他们想把这些邮票分成两份 ...

  9. 【蓝桥杯官网试题 - 算法提高 】求最大值 (dp,0-1背包)

    题干: 问题描述 给n个有序整数对ai bi,你需要选择一些整数对 使得所有你选定的数的ai+bi的和最大.并且要求你选定的数对的ai之和非负,bi之和非负. 输入格式 输入的第一行为n,数对的个数 ...

最新文章

  1. ::operator new、sgi stl alloc、dlmalloc测试结果
  2. AAAI 2021 顶会论文开源,OCR方向最火开源项目已超1万 star!
  3. Spring IOC 容器源码分析系列文章导读
  4. Oracle 多行记录合并/连接/聚合字符串的几种方法
  5. java 人脸检测_Java+OpenCV实现人脸检测并自动拍照
  6. 选择排序--Java
  7. 迅雷BT下载电影99.9%不动原地循环解决方案
  8. 梯度消失与梯度爆炸原因剖析
  9. Linux: kill
  10. 将Nginx添加到系统服务(使其可使用service命令控制)
  11. ThinkPad键盘拆解与清理(附图详解)
  12. 图文详解如何从win8/8.1中文版(核心版)升级到win8/8.1专业版
  13. 连接mysql超时_数据库连接超时的原因及其解决方法
  14. Acer宏基笔记本电脑捕食者Predator PH317-55原装出厂Windows10系统恢复原厂OEM系统
  15. 关于版权声明的写法(转)
  16. 仿qq省市区三级联动js
  17. mysql 数字取模_Mycat之数据库分片(取模分片)-yellowcong
  18. Docker实践7:容器与主机拷贝数据
  19. vue-cli3学习第一节之构建一个vue-cli3项目空壳
  20. 概率论与数理统计考试重点复习路线

热门文章

  1. jsp里加java代码,利用静态内部类为您的代码添加辅助功能-JSP教程,Java技巧及代码...
  2. oracle udev 多路径,Suse 11下多路径及udev配置
  3. PHP未来码支付V1.3网站源码开源版
  4. PHP在线加密系统-陌屿云PLUS开源版V8.01
  5. 最近很火的夏日便捷小空调源码(小程序版)
  6. Discuz x1.0 修改游客浏览图片、附件权限
  7. Genymotion - 强大好用高性能的 Android 模拟器 (在电脑流畅运行APK安卓软件游戏的利器)...
  8. jquery响应式内容滑动插件bxSlider
  9. Google adwords新手推广常见错误
  10. 贪心——FatMouse' Trade(hdu1003)