BZOJ3895 取石子
我等蒟蒻只能想到石子数 ≥ 2时的情况。。。1的时候就爆搜?大概是这个意思
最后再记忆化一下
/**************************************************************
Problem: 3895
User: rausen
Language: C++
Result: Accepted
Time:500 ms
Memory:12524 kb
****************************************************************/ #include <cstdio>
#include <cstring> using namespace std; int n;
int f[][]; int dfs(int a, int b) {
if (!a) return b & ;
if (b == ) return dfs(a + , );
if (~f[a][b]) return f[a][b];
if ((a && !dfs(a - , b)) || (a && b && !dfs(a - , b + )) || (a >= && !dfs(a - , b + + (b > ))) || (b && !dfs(a, b - ))) return f[a][b] = ;
return f[a][b] = ;
} int main() {
int T, i, a, b, x;
memset(f, -, sizeof(f));
scanf("%d", &T);
while (T--) {
scanf("%d", &n);
for (i = , a = , b = -; i <= n; ++i) {
scanf("%d", &x);
if (x == ) ++a;
else b += x + ;
}
if (b == -) b = ;
puts(dfs(a, b) ? "YES" : "NO");
}
return ;
}
BZOJ3895 取石子的更多相关文章
- bzoj3895: 取石子(博弈论,记忆化搜索)
		3895: 取石子 Time Limit: 1 Sec Memory Limit: 512 MBSubmit: 361 Solved: 177[Submit][Status][Discuss] D ... 
- 【BZOJ-3895】取石子       记忆化搜索 + 博弈
		3895: 取石子 Time Limit: 1 Sec Memory Limit: 512 MBSubmit: 263 Solved: 127[Submit][Status][Discuss] D ... 
- 【BZOJ3895】取石子(博弈,记忆化搜索)
		题意: Alice和Bob两个好朋含友又开始玩取石子了.游戏开始时,有N堆石子排成一排,然后他们轮流操作(Alice先手),每次操作时从下面的规则中任选一个:1:从某堆石子中取走一个2:合并任意两堆石 ... 
- {HDU}{2516}{取石子游戏}{斐波那契博弈}
		题意:给定一堆石子,每个人最多取前一个人取石子数的2被,最少取一个,最后取石子的为赢家,求赢家. 思路:斐波那契博弈,这个题的证明过程太精彩了! 一个重要的定理:任何正整数都可以表示为若干个不连续的斐 ... 
- Games:取石子游戏(POJ 1067)
		取石子游戏 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 37662 Accepted: 12594 Descripti ... 
- ACM 取石子(七)
		取石子(七) 时间限制:1000 ms | 内存限制:65535 KB 难度:1 描述 Yougth和Hrdv玩一个游戏,拿出n个石子摆成一圈,Yougth和Hrdv分别从其中取石子,谁先取完 ... 
- [ACM_数学] Fibonacci Nim(另类取石子,2-4组合游戏)
		游戏规则: 有一堆个数为n的石子,游戏双方轮流取石子,满足: 1)先手不能在第一次把所有的石子取完: 2)之后每次可以取的石子数介于1到对手刚取的石子数的2倍之间(包含1和对手刚取的石子数的2倍). ... 
- nim3取石子游戏 (威佐夫博弈)
		http://www.cnblogs.com/jackge/archive/2013/04/22/3034968.html 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有 ... 
- 【poj1067】 取石子游戏
		http://poj.org/problem?id=1067 (题目链接) 题意 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走 ... 
随机推荐
- 20145118《Java程序设计》 第8周学习总结
			20145118<Java程序设计> 第8周学习总结 教材学习内容总结 1.Java SE提供了日志API,可以基于标准调用,用于记录.java.util.logging包提供了日志功能相 ... 
- .Family_物联网
			群名称 : .Family_物联网 QQ群号: 群介绍 基于嵌入式,构建各通信模式,网关,平台软件,工业系统等领域,欢迎各位朋友加群,交流学习! 
- P3870 [TJOI2009]开关
			思路 重题 代码 #include <iostream> #include <vector> #include <cstdio> #include <cstr ... 
- Perl 获得当前路径
			1.有两种方法:1. use Cwd;my $dir = getcwd;#$dir中即为当前目录的完整路径信息.2. my $dir = $ENV{'PWD'};#ENV是一个散列,用于存放环境变 ... 
- robot_pose的类型
			http://docs.ros.org/api/geometry_msgs/html/msg/Pose.html 
- c++ 判断数组元素是否都是奇数(all_of)
			#include <iostream> // std::cout #include <algorithm> // std::all_of #include <array& ... 
- gulp4小demo
			本来想着用gulp搭建一个自动化构建工具,结果一顿报错,后来发现我重新安装的gulp版本是4.0.0,与3版本还是不太一样的,遂记之. Gulp 3版本Demo: const gulp = requi ... 
- 模版层Template layer
			每一个Web框架都需要一种很便利的方法用于动态生成HTML页面. 最常见的做法是使用模板. 模板包含所需HTML页面的静态部分,以及一些特殊的模版语法,用于将动态内容插入静态部分. 说白了,模板层就是 ... 
- [ios]iOS8 定位
			参考:http://www.2cto.com/kf/201410/342392.html http://blog.csdn.net/yongyinmg/article/details/39521523 ... 
- JAVA类和对象创建
			面向对象 学习目标: 理解面向对象的编程思想 理解类与对象的关系 如何创建类与对象 方法重载 一:什么是面向对象编程(OOP) 面向对象编程(Object Oriented Programming,O ... 
