2017-08-25 20:08:54

writer:pprp

题目简述:

• HDU 5616
• n个砝码,可以放在天平左右两侧或不放
• m次询问,每次询问是否可以测出给定重量
• 1 ≤ n ≤ 20
• 1 ≤ m ≤ 100

这道题采用枚举的思路的话实现起来还是有点困难的,

要实现的功能是对每个砝码进行处理,加到左边, 加到右边,或者是不加

看了大神的代码,感觉很巧妙,

设置了两个标记数组

vis1[2005], vis2[2005]

一个vis1用来记录当前已经可以实现的重量

另一个vis2用来作为中间量,记录处理之后的值

通过这个给我一个处理想这样的题的一个思路吧

代码如下:

/*
theme:hdu5616
writer:pprp
declare:暴力枚举
date:2017/8/25
*/ #include <bits/stdc++.h> using namespace std;
const int maxn = ;
int w[maxn];
bool vis1[maxn];
bool vis2[maxn];
int N; int main()
{
int cas;
cin >> cas;
while(cas--)
{
cin >> N;
for(int i = ; i < N ; i++)
{
cin >> w[i];
}
memset(vis1,,sizeof(vis1));
memset(vis2,,sizeof(vis2)); vis1[] = ; for(int i = ; i < N ; i++)
{
for(int j = ; j <= ; j++)//顶多20 * 100 个
{
//这里是j不是i
if(vis1[j] != ) //如果已经有元素存在,那么在新地砝码加到左边,加到右边或者不加,分三种情况
{
vis2[j] = true;
vis2[abs(j - w[i])] = true;
vis2[j + w[i]] = true;
}
}
for(int k = ; k <= ; k++) //将vis2清空
{
vis1[k] = vis2[k];
vis2[k] = ;
}
} int m;
cin >> m;
long long int tmp; for(int i = ; i < m ; i++)
{
cin >> tmp;
if(vis1[tmp] == || tmp < || tmp > )
{
cout << "NO" << endl;
}
else
{
cout << "YES" << endl;
}
}
} return ;
}

hdu5616 暴力枚举的更多相关文章

  1. CodeForces 742B Arpa’s obvious problem and Mehrdad’s terrible solution (暴力枚举)

    题意:求定 n 个数,求有多少对数满足,ai^bi = x. 析:暴力枚举就行,n的复杂度. 代码如下: #pragma comment(linker, "/STACK:1024000000 ...

  2. 2014牡丹江网络赛ZOJPretty Poem(暴力枚举)

    /* 将给定的一个字符串分解成ABABA 或者 ABABCAB的形式! 思路:暴力枚举A, B, C串! */ 1 #include<iostream> #include<cstri ...

  3. HNU 12886 Cracking the Safe(暴力枚举)

    题目链接:http://acm.hnu.cn/online/?action=problem&type=show&id=12886&courseid=274 解题报告:输入4个数 ...

  4. 51nod 1116 K进制下的大数 (暴力枚举)

    题目链接 题意:中文题. 题解:暴力枚举. #include <iostream> #include <cstring> using namespace std; ; ; ch ...

  5. Codeforces Round #349 (Div. 1) B. World Tour 最短路+暴力枚举

    题目链接: http://www.codeforces.com/contest/666/problem/B 题意: 给你n个城市,m条单向边,求通过最短路径访问四个不同的点能获得的最大距离,答案输出一 ...

  6. bzoj 1028 暴力枚举判断

    昨天梦到这道题了,所以一定要A掉(其实梦到了3道,有两道记不清了) 暴力枚举等的是哪张牌,将是哪张牌,然后贪心的判断就行了. 对于一个状态判断是否为胡牌,1-n扫一遍,然后对于每个牌,先mod 3, ...

  7. POJ-3187 Backward Digit Sums (暴力枚举)

    http://poj.org/problem?id=3187 给定一个个数n和sum,让你求原始序列,如果有多个输出字典序最小的. 暴力枚举题,枚举生成的每一个全排列,符合即退出. dfs版: #in ...

  8. hihoCoder #1179 : 永恒游戏 (暴力枚举)

    题意: 给出一个有n个点的无向图,每个点上有石头数个,现在的游戏规则是,设置某个点A的度数为d,如果A点的石子数大于等于d,则可以从A点给每个邻接点发一个石子.如果游戏可以玩10万次以上,输出INF, ...

  9. CCF 201312-4 有趣的数 (数位DP, 状压DP, 组合数学+暴力枚举, 推公式, 矩阵快速幂)

    问题描述 我们把一个数称为有趣的,当且仅当: 1. 它的数字只包含0, 1, 2, 3,且这四个数字都出现过至少一次. 2. 所有的0都出现在所有的1之前,而所有的2都出现在所有的3之前. 3. 最高 ...

随机推荐

  1. Java 使用阿里云短信的API接口

    亲们上午好,写的不好的地方还望指正.谢谢各位! 引言 短信服务(Short Message Service)是阿里云为用户提供的一种通信服务的能力,支持快速发送短信验证码.短信通知等.(我这里只讲一个 ...

  2. Python的编码问题(一)

    一.什么是编码 可以说,计算机是一个即聪明又笨蛋的家伙.说它聪明,是因为他可以做很多事情,它的强大无需多说,大家应该都有所了解以及感受.但是为什么说它又是个笨蛋呢,因为我们在电脑上写出的每一个字,保存 ...

  3. Eclipse集成SVN

    安装Subversion1.82(SVN)插件 简介    :SVN是团队开发的代码管理工具,它使我们得以进行多人在同一平台之下的团队开发. 解决问题:Eclipse下的的SVN插件安装. 学到    ...

  4. (2.4)备份与还原--WAL与备份原理

    预写式日志(Write-Ahead Logging (WAL))  部分转自:http://www.cnblogs.com/wenBlog/p/4423497.html SQL Server中使用了W ...

  5. FileLoadTools

    /** * Created by dev013 on 9/9/14. */ var FileLoadTools = (function () { var my = {}; var htmlFile = ...

  6. 07 nginx反向代理和nfs服务

    作业一:nginx服务二进制安装nginx包 作为web服务修改配置文件 让配置生效,验证配置 作业二:nfs服务二进制安装nfs作为共享存储挂载在三台web的网站根目录下实现,在任意一台web上修改 ...

  7. java jdom 解析CDATA内容

    package com; import java.io.IOException; import java.io.StringReader; import java.util.List; import ...

  8. Nginx基本介绍

    1.Nginx介绍 nginx是由俄罗斯人开发的一款高性能的http和反向代理服务器,也可以用来作为邮件代理.相比较于其他的服务器,具有占用内存少,稳定性高等优势 2.反向代理 正向代理类似一个跳板机 ...

  9. nginx日志输出,https,ssl

    日志输出(浏览器直接访问)缺省安装下,浏览器是无法访问日志的,需要在编译的时候附带参数安装这些模块 ./configure --prefix=/usr/local/nginx --with-http_ ...

  10. radio,checkbox,select,input text获取值,设置哪个默认选中

    11 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title& ...