2017浙江工业大学-校赛决赛 小M和天平

Description

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

Input

第一行T(1≤T≤100),表示T组数据。
接下来T组数据:
接下来第一行一个数N,表示石子个数。(1≤N≤100)
接下来第二行N个数,表示石子的重量。(1≤w_i≤100)
接下来第三行一个数M,表示询问个数。(1≤M≤100)
接下来M行每行一个数k,表示一个询问。

Output

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

Sample Input

1
2
1  4
3
2
4
5

Sample Output

NO
YES
YES解法:dp[i][j] 表示计算到第i个砝码,能计算j重量首先dp[i][0]=1 5 21 第一个数字为5时,我们可以计算5的质量 dp[1][5]=dp[1-1][0+5]=12 第二个数字为2时,我们知道dp[2][7]=dp[2-1][7-2]=1或者是dp[2][3]=dp[2-1][5-2]=1 (当dp[1][5]==1时)那么有dp[i-1][j]==1时 dp[i][j]=1 dp[i][j+a[i]]=1 dp[i][abs(j-a[i])]=1
 1 #include<cstdio>
 2 #include<algorithm>
 3 #include<cstring>
 4 #include<map>
 5 #include<vector>
 6 #include<iostream>
 7 #include<sstream>
 8 #include<cmath>
 9 #include<string>
10 #include<set>
11 #include<list>
12 #include<stack>
13 #include<queue>
14 using namespace std;
15 int dp[200][100*100+10];
16 int main()
17 {
18     int t;
19     scanf("%d",&t);
20     while(t--){
21         int sum=0;
22         int a[200];
23         int n;
24         scanf("%d",&n);
25         memset(dp,0,sizeof(dp));
26         for(int i=1;i<=n;i++){
27             scanf("%d",&a[i]);
28             sum+=a[i];
29         }
30         for(int i=0;i<=n;i++){
31             dp[i][0]=1;
32         }
33         for(int i=1;i<=n;i++){
34             for(int j=sum;j>=0;j--){
35                 if(dp[i-1][j]){
36                     dp[i][j]=1;
37                     dp[i][abs(j-a[i])]=1;
38                     dp[i][j+a[i]]=1;
39                 }
40             }
41         }
42         int m;
43         scanf("%d",&m);
44         while(m--){
45             long long p;
46             scanf("%lld",&p);
47             if(dp[n][p]){
48                 puts("YES");
49             }else{
50                 puts("NO");
51             }
52         }
53     }
54     return 0;
55 }
时间: 2024-10-19 04:41:21

2017浙江工业大学-校赛决赛 小M和天平的相关文章

2017浙江工业大学-校赛决赛 竹之书

Description 由于某些原因菲莉丝拿到了贤者之石,所以好像变得很厉害了好像变得很厉害的菲莉丝想要炼成幻想乡,其中有一个原料是稗田一族对幻想乡历史的记录.现在菲莉丝拿到了一个被某只魔粘性精神体加密过的的卷轴.密文通过原文和一个正整数key加密形成,而key和密文又有一定关联.现给出密文,求key值 已知密文s和key值关系如下已知密文s是一串正整数s1,s2,s3--sn,A为s中所有元素的和,B为s中所有元素的积,key为B mod A 数据范围si,A在(0,1e17]范围内0<n<

2017浙江工业大学-校赛决赛 XiaoWei的战斗力

Description XiaoWei沉迷RPG无法自拔,但是他的战斗力只有5,所以他决定氪金提升战斗力.XiaoWei购买了n个福袋.打开1个福袋后,有以下三种情况出现:1.获得屠龙宝刀,概率为p1:2.获得火麒麟,概率为p2:3.什么都没获得,概率为1-p1-p2:已知每把屠龙宝刀能够使战斗力*2,每把火麒麟能够使战斗力*1.5.XiaoWei虽然初始战斗力很弱,但是潜力无限,可以装备任意数量的屠龙宝刀和火麒麟,并且效果可以叠加.XiaoWei想知道,打开n个福袋后并装备武器后,他的战斗力期

2017浙江工业大学-校赛决赛 小马哥和数列

Description 小马哥是个追求完美的人,现在给定一个正整数数列,和正整数p,设这个数列中的最大值是M,最小值是m,如果M <= m * p,则称这个数列是完美的,现在给定参数p和一些正整数,请你从中选择尽可能多的数构成一个完美数列. Input 多组数据.输入第一行给出两个正整数N和p,其中N(<= 10^5)是输入的正整数的个数,p(<= 10^9)是给定的参数.第二行给出N个正整数,每个数不超过10^9. Output 在一行中输出最多可以选择多少个数可以用它们组成一个完美数

2017浙江工业大学-校赛决赛 猜猜谁是我

Description 女神YSJ给Martin发了一个视频."猜猜里面哪个是我." 女神说.作为一个脸盲,再加上多年不见,Martin已经完全不知道女神长成了什么样子,他表示完全认不出来.好在Martin手上还有一张YSJ小时候的照片,他可以拿照片和视频里的人进行特征比对,从而找出女神.为了简化问题,我们将YSJ小时候的脸表示成一个800行800列的矩阵,然后给出眼睛.鼻子.嘴巴的中心在脸上的坐标,全部用整数表示.视频中的其他人也都按照这个方式表示,截取正脸并且缩放到800x800以

2017浙江工业大学-校赛决赛 BugZhu抽抽抽!!

Description 当前正火的一款手游阴阳师又出新式神了,BugZhu十分想要获得新出的式神,所以他决定花光所有的积蓄来抽抽抽!BugZhu经过长时间的研究后发现通过画三角外接圆能够提高获得该式神的概率,即如下图所示的图形: 高超的数学天分给予了BugZhu神一般的洞察力,BugZhu还发现当图中阴影部分的面积处在[l,r]之间时,他能够获得最高的概率.BugZhu现在画好了符,他能不能获得最高概率呢? Input 不超过100组数据每组数据第一行给出l和r(l,r均在double范围内).

2017广东工业大学程序设计竞赛决赛-tmk买礼物

tmk买礼物 Description 今天是校赛的日子,为了庆祝这么喜庆的日子,TMK打算买些礼物给女票LSH庆祝一下. TMK进入了雪梨超市,然后刚踏入的一瞬间,店主就对TMK说:“恭喜你成为了本店第2147483647位顾客,本店在搞一个活动,对本店第2147483647位顾客进行赠送活动.你先看看你有多少钱?” TMK一摸口袋,发现只有n个硬币,每个硬币的价值为a[i]. 然后店主继续说:“现在你用你的钱凑一些数,如果你的钱能凑成[0,x]里面所有的数,那么你将会免费获得该店价值x元的代金

2016BUAA校赛决赛

A. 题意:有n个点,n-1条边,1-2-3-4-5-...-n,每条边都有权值,代表走这条边的时间,时刻0一个人在点1,问从时刻1~m,有哪些时刻这个人可能走到n点 分析:将每条边当作物品,可以选1 3 5 7...次,完全背包,f[i][j]表示前i条边,时刻j能否到,注意如果f[i][j]为1的时候,那么break循环节省时间不需再枚举后面的k C. 题意:圆柱体侧面展开,问两个点的最短距离 分析:勾股定理算一算,注意pi=acos(-1.0) I.  题意:无穷大的平面上,有间距为X的水

ACM学习历程—广东工业大学2016校赛决赛-网络赛F 我是好人4(数论)

题目链接:http://gdutcode.sinaapp.com/problem.php?cid=1031&pid=5 这个题目一看就是一道数论题,应该考虑使用容斥原理,这里对lcm进行容斥. 不过直接上去是T,考虑到序列中同时存在i和ki的话,其实只需要考虑i,所以先对序列中为倍数的对进行处理. 这里的容斥用了hqw的写法. 代码: #include <iostream> #include <cstdio> #include <cstdlib> #includ

ACM学习历程—广东工业大学2016校赛决赛-网络赛E 积木积水(最值问题 || 动态规划)

题目链接:http://gdutcode.sinaapp.com/problem.php?cid=1031&pid=4 这个题目自然会考虑到去讨论最长或者最短的板子. 笔上大概模拟一下的话,就会知道,假设最长的板子是r,0和n+1位置上都是高度为0的板子,那么对于[0, r-1]中的最长板子rr,rr到r这一短应该都是被深度为a[rr]的水覆盖.同样的[0, rr-1]中的最长板子rrr,rrr到rr这一段应该是被a[rrr]覆盖,以此类推可以搞定r的前面一段,同理搞定后一段. 关于最值这一块,