链接:https://ac.nowcoder.com/acm/contest/1/D

来源:牛客网

小M和天平

时间限制:C/C++ 2秒,其他语言4秒

空间限制:C/C++ 131072K,其他语言262144K

64bit IO Format: %lld

题目描述

小M想知道某件物品的重量,但是摆在他面前的只有一个天平(没有游标)和一堆石子,石子可以放左边也可以放右边。他现在知道每个石子的重量。问能不能根据上述条件,能不能测出所问的重量。

输入描述:

多组数据,第一行一个数N,表示石子个数。(1<=N<=100) 接下来第二行N个数,表示石子的重量。(1<=Wi<=100) 接下来第三行一个数M,表示询问个数。(1<=M<=1000) 接下来M行每行一个数k(1<=k<=1e9),表示一个询问。

输出描述:

对于每组数据,输出"YES"或者"NO"

示例1

输入

复制

2

1 4

3

2

4

5

输出

复制

NO

YES

YES

题意:



思路:

暴力枚举每一个石头是加还是减即可,因为总重量是1e4 所以时间复杂度是 1e6 可以过

细节见代码:

  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstring>
  4. #include <algorithm>
  5. #include <cmath>
  6. #include <queue>
  7. #include <stack>
  8. #include <map>
  9. #include <set>
  10. #include <vector>
  11. #include <iomanip>
  12. #define ALL(x) (x).begin(), (x).end()
  13. #define rt return
  14. #define sz(a) int(a.size())
  15. #define all(a) a.begin(), a.end()
  16. #define rep(i,x,n) for(int i=x;i<n;i++)
  17. #define repd(i,x,n) for(int i=x;i<=n;i++)
  18. #define pii pair<int,int>
  19. #define pll pair<long long ,long long>
  20. #define gbtb ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
  21. #define MS0(X) memset((X), 0, sizeof((X)))
  22. #define MSC0(X) memset((X), '\0', sizeof((X)))
  23. #define pb push_back
  24. #define mp make_pair
  25. #define fi first
  26. #define se second
  27. #define eps 1e-6
  28. #define gg(x) getInt(&x)
  29. #define db(x) cout<<"== [ "<<x<<" ] =="<<endl;
  30. using namespace std;
  31. typedef long long ll;
  32. ll gcd(ll a,ll b){return b?gcd(b,a%b):a;}
  33. ll lcm(ll a,ll b){return a/gcd(a,b)*b;}
  34. ll powmod(ll a,ll b,ll MOD){ll ans=1;while(b){if(b%2)ans=ans*a%MOD;a=a*a%MOD;b/=2;}return ans;}
  35. inline void getInt(int* p);
  36. const int maxn=1000010;
  37. const int inf=0x3f3f3f3f;
  38. /*** TEMPLATE CODE * * STARTS HERE ***/
  39. bool isok[10010];
  40. int a[maxn];
  41. int main()
  42. {
  43. // freopen("D:\\code\\text\\input.txt","r",stdin);
  44. //freopen("D:\\code\\text\\output.txt","w",stdout);
  45. int n,m;
  46. while(~scanf("%d",&n))
  47. {
  48. int sum=0;
  49. repd(i,1,n)
  50. {
  51. gg(a[i]);
  52. // cin>>a[i];
  53. sum+=a[i];
  54. }
  55. MS0(isok);
  56. isok[0]=1;
  57. repd(i,1,n)
  58. {
  59. for(int j=sum;j>=a[i];j--)
  60. {
  61. isok[j]|=isok[j-a[i]];
  62. }
  63. }
  64. repd(i,1,n)
  65. {
  66. for(int j=1;j<=sum-a[i];j++)
  67. {
  68. isok[j]|=isok[j+a[i]];
  69. }
  70. }
  71. gg(m);
  72. // cin>>m;
  73. int num;
  74. while(m--)
  75. {
  76. gg(num);
  77. // cin>>num;
  78. if(num>sum||!isok[num])
  79. {
  80. puts("NO");
  81. // cout<<"NO"<<endl;
  82. }else
  83. {
  84. puts("YES");
  85. // cout<<"YES"<<endl;
  86. }
  87. }
  88. }
  89. return 0;
  90. }
  91. inline void getInt(int* p) {
  92. char ch;
  93. do {
  94. ch = getchar();
  95. } while (ch == ' ' || ch == '\n');
  96. if (ch == '-') {
  97. *p = -(getchar() - '0');
  98. while ((ch = getchar()) >= '0' && ch <= '9') {
  99. *p = *p * 10 - ch + '0';
  100. }
  101. }
  102. else {
  103. *p = ch - '0';
  104. while ((ch = getchar()) >= '0' && ch <= '9') {
  105. *p = *p * 10 + ch - '0';
  106. }
  107. }
  108. }

长沙理工大学第十二届ACM大赛-重现赛 D 小M和天平 (01背包)的更多相关文章

  1. 长沙理工大学第十二届ACM大赛-重现赛 J 武藏牌牛奶促销

    链接:https://ac.nowcoder.com/acm/contest/1/J 来源:牛客网 武藏牌牛奶促销 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他 ...

  2. 长沙理工大学第十二届ACM大赛-重现赛I 主持人的烦恼 (sort)

    链接:https://ac.nowcoder.com/acm/contest/1/I 来源:牛客网 主持人的烦恼 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语 ...

  3. 长沙理工大学第十二届ACM大赛-重现赛C 安卓图案解锁 (模拟)

    链接:https://ac.nowcoder.com/acm/contest/1/C来源:牛客网 安卓图案解锁 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言 ...

  4. 长沙理工大学第十二届ACM大赛-重现赛 B 日历中的数字 (实现)

    链接:https://ac.nowcoder.com/acm/contest/1/B来源:牛客网 全屏查看题目   时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他 ...

  5. 长沙理工大学第十二届ACM大赛-重现赛 G - 跑路ing

    题目描述 vigoss18 辞职成功终于逃出了公司,但是没过太久,公司就发现vigoss18 的所作所为,于是派人来把他抓 回去. vigoss18 必须一直跑路,躲避公司的围捕.可以抽象的看成一个有 ...

  6. 长沙理工大学第十二届ACM大赛-重现赛 L - 选择困难症

    题目描述 小L有严重的选择困难症. 早上起床后,需要花很长时间决定今天穿什么出门. 假设一共有k类物品需要搭配选择,每类物品的个数为Ai,每个物品有一个喜欢值Vj,代表小L对这件物品的喜欢程度. 小L ...

  7. 长沙理工大学第十二届ACM大赛-重现赛 K - 大家一起来数二叉树吧

    题目描述 某一天,Zzq正在上数据结构课.老师在讲台上面讲着二叉树,zzq在下面发着呆. 突然zzq想到一个问题:对于一个n个节点,m个叶子的二叉树,有多少种形态呐?你能告诉他吗? 对于第一组样例的解 ...

  8. 长沙理工大学第十二届ACM大赛-重现赛

    年轮广场 时间限制:1秒 空间限制:131072K 题目描述 在云塘校区,有一个很适合晒太阳的地方————年轮广场 年轮广场可以看成n个位置顺时针围成一个环. 这天,天气非常好,Mathon带着他的小 ...

  9. 长沙理工大学第十二届ACM大赛-重现赛 大家一起来数二叉树吧 (组合计数)

    大意: 求n结点m叶子二叉树个数. 直接暴力, $dp[i][j][k][l]$表示第$i$层共$j$节点, 共$k$叶子, 第$i$层有$l$个叶子的方案数, 然后暴力枚举第$i$层出度为1和出度为 ...

随机推荐

  1. Vue学习(二) :第一个Vue项目

    OS: Windows 10 Home 64bit Chocolatey version: 0.10.13 npm version: 6.4.1 yarn version: 1.16.0 git ve ...

  2. 《Effective Java》读书笔记 - 3.对于所有对象都通用的方法

    Chapter 3 Methods Common to All Objects Item 8: Obey the general contract when overriding equals 以下几 ...

  3. 送书福利| Python 完全自学手册

    前言 这里不讨论「能不能学,要不要学,应不应该学 Python」的问题,这里只会告诉你怎么学. 首先需要强调的是,如果 Python 都学不会,那么我建议你考虑别的行业,因为 Python 之简单,令 ...

  4. windows环境下PostgreSQL的安装

    1.首先在如下链接下载PostgreSQL的压缩包,我这里下载的是postgresql-12.1-1-windows-x64-binaries.zip. https://www.enterprised ...

  5. html script生成二维码

    <div class="code" align="center"> <p >手机端扫描以下二维码直接观看(支持安卓Android/苹果i ...

  6. 解决Pip install Pillow 失败问题

    当我在使用Django一个上传图片功能的时候, Django 提示我安装 Pillow这个图片处理的库, 当我尝试安装的时候. 总是提示安装失败 报如下错误. v = self._sslobj.rea ...

  7. ES6标准入门 第五章:正则的扩展

    1.RegExp 构造函数 ES5的缺陷: ES5中构造函数的参数有两种情况: (1)参数是字符串,这时第二个参数表示正则表达式的的修饰符(flag). var reg = new RegExp( & ...

  8. 快速编写 <a> ————CSS3

    a{ text-decoration:none; } a:link{ color:white; } a:visited { color:white; } a:hover { color:blue; } ...

  9. LeetCode.867-转置矩阵(Transpose Matrix)

    这是悦乐书的第332次更新,第356篇原创 01看题和准备 今天介绍的是LeetCode算法题中Easy级别的第202题(顺位题号是867).给定矩阵A,返回A的转置. 矩阵的转置是在其主对角线上翻转 ...

  10. linux/linux学习笔记-Shell基础(mooc)

    一.shell概述 shell根据ascII表,将命令翻译为0101...传给内核执行. 内核->shell翻译为命令->用户(操作的界面就是shell,shell=翻译官) linux标 ...