给定一个如下图所示的全圆量角器。

初始时,量角器上的指针指向刻度 0。

现在,请你对指针进行 n 次拨动操作,每次操作给定一个拨动角度 ai,由你将指针拨动 ai 度,每次的拨动方向(顺时针或逆时针)由你自由决定。

请你判断,能否通过合理选择每次拨动的方向,使得指针最终仍然指向刻度 0。

输入格式

第一行包含整数 n。

接下来 n 行,每行包含一个整数 ai,表示一次操作的拨动角度。

输出格式

如果可以做到指针最终仍然指向刻度 0,则输出 YES,否则输出 NO

数据范围

前 4 个测试点满足 1≤n≤3。
所有测试点满足 1≤n≤15,1≤ai≤180。

输入样例1:

3
10
20
30

输出样例1:

YES

输入样例2:

3
10
10
10

输出样例2:

NO

输入样例3:

3
120
120
120

输出样例3:

YES

dfs​​​​​​​做法

#include <iostream>using namespace std;int n;
const int N = 20;bool st;int a[N];void dfs(int t, int r)
{if(t == n + 1 ) {if(r % 360 == 0)    st = true;return ;}dfs(t + 1, r + a[t]); dfs(t + 1, r - a[t]);                }int main()
{scanf("%d", &n);for(int i = 0; i< n; i ++)  scanf("%d", &a[i]);dfs(0, 0);if(st)   cout << "YES";else    cout << "NO";return 0;
}

二进制枚举

#include <iostream>
using namespace std;
const int N = 20,M=1<<16 ;
int a[N], f[M];
int n;
bool st;int main()
{cin >> n;for(int i = 0; i < n; i ++) scanf("%d", &a[i]);for(int i = 0; i < (1 << n); i ++){for(int j = 0; j < n; j ++){if(i >> j & 1)  f[i] += a[j];else    f[i] -= a[j];}if(f[i]%360==0) st = true;}if(st == false) cout << "NO";else    cout << "YES";return 0;
}

二进制枚举爆搜DFS相关推荐

  1. 【二进制枚举】【dfs暴搜】

    原题链接 这道题,每个物品,就是选与不选两种情况,那么我们就用dfs暴搜,每次dfs要么选这个,要么不选这个 每次都到n+1停止 dfs方法 每次都暴力 选与不选两种情况,因为每个物品都有可能选或者不 ...

  2. 买零食 HihoCoder - 1272 (大爆搜DFS)

    小Ho很喜欢在课间去小卖部买零食.然而不幸的是,这个学期他又有在一教的课,而一教的小卖部姐姐以冷若冰霜著称.第一次去一教小卖部买零食的时候,小Ho由于不懂事买了好一大堆东西,被小卖部姐姐给了一个&qu ...

  3. 潜水员:【爆搜 + 二进制枚举 + DP】

    题目: 潜水员为了潜水要使用特殊的装备. 他有一个带2种气体的气缸:一个为氧气,一个为氮气. 让潜水员下潜的深度需要各种数量的氧和氮. 潜水员有一定数量的气缸. 每个气缸都有重量和气体容量. 潜水员为 ...

  4. 【ZSTU4210 2015年12月浙理工校赛 A】【DFS爆搜】孙壕请一盘青岛大虾呗 n个消费点m个购物点最后一位置恰好消费完

    4210: 孙壕请一盘青岛大虾呗 Time Limit: 5 Sec  Memory Limit: 128 MB Submit: 585  Solved: 249 Description 话说那一年z ...

  5. 和为K(二进制枚举和深搜)

    二进制枚举: #include<bits/stdc++.h> using namespace std; int main() {int n,k;int i,j;int a[25] = { ...

  6. DFS(爆搜、深搜)

    DFS俗称爆搜,深搜.DFS对应的流程是一个树的结构,DFS的精髓在于递归求解的思路以及回溯的处理.针对搜索的过程,又有重要的剪枝优化.必要的剪枝优化对DFS的顺序执行有很大的作用. DFS的过程就是 ...

  7. 二进制枚举子集(总结+应用)

    文章目录 定义阐明 简单的知识铺垫 应用举例 代码实现 例题应用 思路如下: 题解如下: 其它例题 定义阐明 1.什么是子集:子集是一个数学概念:如果集合A的任意一个元素都是集合B的元素,那么集合A称 ...

  8. 1096 Consecutive Factors (20 分)【难度: 一般 / 爆搜 数论】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805370650738688 注意测试点1: 72=2*3*3*4 我这里 ...

  9. HDU 5025Saving Tang Monk BFS + 二进制枚举状态

    3A的题目,第一次TLE,是因为一次BFS起点到终点状态太多爆掉了时间. 第二次WA,是因为没有枚举蛇的状态. 解体思路: 因为蛇的数目是小于5只的,那就首先枚举是否杀死每只蛇即可. 然后多次BFS, ...

最新文章

  1. html5自适应团购,基于HTML5的O2O团购平台的设计与实现
  2. SpringBoot v2.2.6版本遇到的坑------Thymeleaf的sec:authorize标签无效
  3. 【Tools】Visual Studio 2019下载和安装
  4. 技术、管理和技术管理
  5. C++实现线段树(lazy-tag方法)-区间修改,区间查询
  6. Java 8 HashMap键与Comparable接口
  7. 小米4android8.0root,小米小米 5X(安卓8.0)手机完美获取root教程,最强root工具,亲测可用!...
  8. Clion解决c++源文件多个编译运行
  9. tensorboard 可视化 projector
  10. 最强升级系统鸿蒙大世界等级,最强升级系统瞬间满级
  11. Activity 审批流简单介绍
  12. 《金融怪杰》读书笔记
  13. Echart统计图-map地图
  14. ThinkPHP5.0+七牛云SDK文件上传
  15. 红米5双清_红米手机双清步骤
  16. ROS小车IMU、角速度、线速度等参数校验
  17. lbaas l7 policy
  18. python输出最长字符串_使用Python打印最长的字母子字符串,并打结...
  19. Win2003集群简介
  20. husky + lint-staged 使用备忘

热门文章

  1. 极空间Docker安装Centos 开启SSH
  2. web应用安全的威胁类型和应对方案
  3. 详解统计信号处理之 克拉美罗界
  4. Cg Programming/Unity/Reflecting Surfaces反射表面
  5. 消息队列 pulsar 架构学习
  6. [转载]泰森多边形(泰森图)
  7. arcgis 生成泰森多边形出错
  8. 计算机专业想要成功保研,从大一开始需要做哪些努力?
  9. boosting 算法总结
  10. 华人高管加入OpenAI;富士通发布AI平台;成都为鼓励AI产业发展提出19项资金扶持措施丨每日大事件...