题目链接:uva 1559 - Nim
题目大意:有n个人,奇数的为一队,偶数的为一对,两队分别从一堆石子个数为S的石子堆中取石子,取到最后一个石子一方则视为失败。给出各个队员每次可取石子的上限值,然后按照顺序操作。
解题思路:dp[i][s]表示第i个选手操作时剩s个石子时为必胜还是必败。因为是取到最后一个石子的为输,所以最后递归结束的条件和不同的略有不同。
还尝试过可以将石子数减1,然后普通处理也是可以。
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn = 30;
const int maxs = 1<<14;
int N, S, m[maxn];
int dp[maxn][maxs];
void init () {
memset(dp, -1, sizeof(dp));
scanf("%d", &S);
for (int i = 0; i < 2 * N; i++)
scanf("%d", &m[i]);
}
bool dfs (int d, int s) {
if (s <= 0)
return 1;
if (d >= 2 * N)
d -= 2 * N;
if (dp[d][s] != -1)
return dp[d][s];
dp[d][s] = 0;
for (int i = 1; i <= m[d]; i++) {
if (dfs(d + 1, s - i))
continue;
dp[d][s] = 1;
}
return dp[d][s];
}
int main () {
while (scanf("%d", &N) == 1 && N) {
init();
printf("%d\n", dfs(0, S) ? 1 : 0);
}
return 0;
}
分享到:
相关推荐
hts-nim-tools:有用的命令行工具,用于展示hts-nim
matlab开发-NIMgame。NIM游戏的图形用户界面实现
Atom-nim-planet.zip,Nim RSS feed planet at https://planet.nim-lang.org尼姆星球,atom是一个用web技术构建的开源文本编辑器。
bigwig-nim:命令行查询+转换bigwigs和dpryan的libbigwig的nim包装器
Orbits-nim的轨道力学库。_Nim_C_下载.zip
import xlsxlet data = parseExcel ( "tests/test.xlsx" ) sheetName = "Sheet2"echo data[sheetName] 输出: +----------+----------+----------+|name |grade |age ||simon | |14 ||tom |87 |34 |+----------+---...
uva11859nim游戏 + 求素因子个数.cpp
AIX-NIM
acm算法-nim游戏篇(算法设计) A number of Nim-like games in which moves are restricted somehow to occur from a single pile are analysed. In each case the complete description of type P and type N ...
gulp-nim Gulp插件来编译文件。 安装 npm i -D gulp-nim 用法 gulpfile.js const { src , dest } = require ( 'gulp' ) const nim = require ( 'gulp-nim' ) exports . default = function ( ) { return src ( '....
比较全面系统的介绍了公平组合游戏,适合于参加acm竞赛的选手使用
在Nim中编写NodeJS本机扩展 如果您不喜欢C代码的冗长且感到C ++太复杂,请尝试使用napi-nim来提高NodeJS应用程序的性能。 现在是NodeJS一部分的新n-api使您可以与支持C ABI的任何语言JavaScript代码进行交互。 是...
print mode in Dev-C++ by Namira
IBM P系列虚拟化 1.规划和配置 2.划分VIO分区,安装配置VIO 3.划分其他Lpar,安装第一个LPAR 4.配置NIM,安装其他LPAR 5.附录
用于Nim的圆锥形(凸锥)优化库。 优化引擎基于 ( )。 支持的圆锥类型 零锥(平等约束) LP(线性不等式约束) 二次锥 旋转二次锥 指数锥 动力锥 要求 BLAS BLAS接口有很多实现。 例如, 。 的Ubuntu sudo ...
用法参见基本用法steps : - uses : actions/checkout@v2 - uses : jiro4989/setup-nim-action@v1 with : nim-version : ' 1.4.0 ' # default is 'stable' - run : nimble build -Y - run : nimble test -Y设置最新的...
1.6 下载和安装Nim这里需要注意的是,Nim编译器需要一个C编译器来编译软件,在windows上推荐使用Mingw-w64,在二进制安装包里提供了Mingw
godot-nim-menu-ui:在这个godot-nim项目中,我为以后的项目制作菜单ui
C Terminal Nim C Terminal Nim有一个不言而喻的名称:这是您可以在终端中玩的Nim游戏。 目前,只有本地两人游戏模式可用。 指示 正在下载 导航到发行页面,并下载适用于您系统的二进制文件(对于Linux是nim ,对于...
msgpack-rpc-nim Nim 的 MessagePack-RPC 实现 API: : 例子作者Akira Hayakawa ( )