sgu239 分类: sgu 2015-06-24 22:18 22人阅读 评论(0) 收藏
2015-06-24 22:18
423 查看
如果知道第一个方格是否有雷,可以推出其他所有方格是否有雷:
记 ai为位置 i上雷的数量,bi为位置 i上的数字
bi=ai−1+ai+ai+1⇒ai=bi−1−ai−1−ai−2
只要枚举 a1的值,判断是否可行即可。
时间复杂度:O(n)
记 ai为位置 i上雷的数量,bi为位置 i上的数字
bi=ai−1+ai+ai+1⇒ai=bi−1−ai−1−ai−2
只要枚举 a1的值,判断是否可行即可。
时间复杂度:O(n)
#include <cstdio> #include <cstdlib> #include <iostream> #include <algorithm> const int maxn = 1005; int n, b[maxn]; int ans, a[maxn]; int check(int x) { a[1] = x; for(int i = 2; i <= n+1; i++) { a[i] = b[i-1] - a[i-1] - a[i-2]; if(!(a[i] == 0 || a[i] == 1)) return 0; } if(a[n+1]) return 0; return 1; } int main() { #ifndef ONLINE_JUDGE freopen("sgu239.in","r",stdin); freopen("sgu239.out","w",stdout); #endif std::cin >> n; for(int i = 1; i <= n; i++) std::cin >> b[i]; ans = check(0) + check(1); std::cout << ans; #ifndef ONLINE_JUDGE fclose(stdin); fclose(stdout); #endif return 0; }
相关文章推荐
- android中的/system/bin/input工具,input keyevent+key_...
- 关于类成员函数中访问同类对象的私有成员
- log4j.properties配置生成log文件路径问题
- [C/C++] const 详解(修饰变量、输入参数、返回值、成员函数)
- Hibernate映射(五)— 多对多
- 61.找出大于m且紧跟m的素数
- 斗地主之洗牌(shuffle)程序的测试程序
- 翻译 - 元编程动态方法之public_send
- 转-什么?你还不会写JQuery 插件
- LintCode-简化路径
- 微博背后的那些算法
- PHP 5.x COM functions提权漏洞的利用分析
- Labview问题集锦
- Bootstrap系列 -- 17. 复选框checkbox和单选择按钮radio
- Boost学习1--计时器的实现
- SVN命令的使用(Ubuntu)
- The connection to adb is down, and a severe error has occured
- java命名规范
- Bootstrap系列 -- 16. 文本域textarea
- 共享MFC自绘Listctrl代码