Content

有一个锁,它只有指针再次指到 \(0\) 刻度处才可以开锁(起始状态如图所示,一圈 \(360\) 度)。

以下给出 \(n\) 个操作及每次转动度数,如果可以通过逆时针或顺时针再次转到 \(0\) 度输出 YES,否则输出 NO

数据范围:\(1\leqslant n\leqslant 15\),\(1\leqslant a_i\leqslant 180\)。

Solution

不知道为什么 19 年 4 月就做了这题,现在看到这题想写篇题解,于是就有了这篇题解(

我们一看到数据范围 \(n\leqslant 15\),因此可能的选择方向的方案数不会超过 \(2^{15}\)。这是一个非常小的数字,然后你就可以暴搜去一个一个枚举转向方案,看是否有合法的就行了。

Code

#include <cstdio>
#include <algorithm>
using namespace std; int n, flag, a[20], used[20]; inline void check() {
int sum = 0;
for(int i = 1; i <= n; ++i)
sum += a[i] * (used[i] ? -1 : 1);
if(sum % 360 == 0)
flag = 1;
} inline void dfs(int x) {
if(x == n + 1)
return check();
dfs(x + 1);
used[x] = 1;
dfs(x + 1);
used[x] = 0;
} int main() {
scanf("%d", &n);
for(int i = 1; i <= n; ++i)
scanf("%d", &a[i]);
dfs(1);
printf(flag ? "YES" : "NO");
return 0;
}

最新文章

  1. SSIS的CheckPoint用法
  2. 如何编译ReactNative示例程序Examples
  3. codevs3145 汉诺塔问题
  4. wpf添加超链接
  5. `cocos2dx非完整`开篇
  6. TP复习2
  7. CSS了一个浮动导航条
  8. bzoj 1042: [HAOI2008]硬币购物 dp+容斥原理
  9. tomcat 假死
  10. python+selenium自动化软件测试(第16章):基础实战(3)
  11. 解决网络不可用--Using_Service_Workers
  12. web SPA项目目录、命名规范
  13. 软工第五次作业——Python效能分析之四则运算生成器
  14. 基于继承的 MethodInterceptor 动态代理(换种写法)
  15. 【Java】关于MyBatis框架的总结
  16. awk中截取IP字段
  17. webform之Repeater控件
  18. 修改oracle系统参数spfile导致数据库无法启动解决
  19. #阿里云#云服务器部署可道云(KodExplorer)
  20. 亚马逊AWS业务副总裁:如何在基础设施上降成本

热门文章

  1. Java-ASM框架学习-修改类的字节码
  2. 【Design Patterns】(1)概述
  3. 富集分析DAVID、Metascape、Enrichr、ClueGO
  4. Mysql优化,ICP、BNL算法、BKA算法、MMR算法
  5. R绘图布局包 customLayout
  6. arm三大编译器的不同选择编译
  7. 练习1--爬取btc论坛的title和相应的url
  8. stlink 无法再keil中识别 按下复位键可以识别
  9. Virtual Destructor
  10. Oracle decode和case的区别