题目连接:10404 - Bachet's Game

题目大意:由一堆石子, 给出石子的总数, 接下来由stan和ollie两个人玩游戏,给出n, 在给出n种取石子的方法(即为每次可取走石子的数量),由stan先,两人轮流取走石子,最后一个将石子全部去完的人胜利,问, 给出的一堆石子, 两人均按最好的方案游戏, 最后将会是谁胜 ?

解题思路:问题可以看做是一个完全背包的变形, dp[i]只有0 和1两种状态, 1 是代表当前i个石子先取者为必胜, 0 带表当前n个石子先取者为必败。转态转移方程if (dp[i - val[j]] == 0) dp[i] = 1;(当前状态可以转化成先手必败,说明当前为先手必胜)。

#include <stdio.h>
#include <string.h>
const int N = 1000005; int n, m, dp[N], val[20]; int main() {
while (scanf("%d%d", &n, &m) == 2) {
memset(dp, 0, sizeof(dp));
memset(val, 0, sizeof(val));
for (int i = 0; i < m; i++)
scanf("%d", &val[i]); for (int i = 1; i <= n; i++) {
for (int j = 0; j < m; j++)
if (i - val[j] >= 0 && !dp[i - val[j]]) {
dp[i] = 1;
break;
}
}
printf("%s\n", dp[n] ? "Stan wins" : "Ollie wins");
}
return 0;
}

最新文章

  1. 从倒影说起,谈谈 CSS 继承 inherit(转)
  2. Photoshop的评价
  3. Node.js Web 开发框架大全《中间件篇》
  4. *BigDecimal初识
  5. log4j发送邮件乱码
  6. SSIS 64位环境访问Oracle11g
  7. &quot;jobTracker is not yet running&quot;(hadoop 配置)
  8. The Signals Of Process Communication
  9. 【DataStructure In Python】Python模拟链表
  10. ssh添加公钥
  11. Linux软件间的依赖关系(转)
  12. android点滴之PendingIntent的使用
  13. php 语法中有 let 吗?
  14. fastboot模式
  15. 18 章 CSS 链接、光标、 DHTML 、缩放
  16. 原型设计的工具-----Axure RP
  17. ECMA Script 6_字符串_扩展_字符 是4字节还是2字节?_模板字符串
  18. commit lint规范化团队git提交信息
  19. linux 使用ifstat查看网络使用情况
  20. Delphi XE5的Android开发平台搭建[转]

热门文章

  1. [转载]node.js express 4.x 安装指南,没有自动配置环境变量的问题
  2. JDBC连接数据库概述
  3. 【转】MUD教程--巫师入门教程2
  4. XML实例入门2
  5. GitHub 菜鸟使用
  6. Oracle查看和修改连接数(进程/会话/并发等等)
  7. delphi 7中使用idhttp抓取网页 解决假死现象
  8. 利用指针突破C++编译器的防线
  9. xcode UIImage图片拉伸
  10. 各类形参(引用,const,指针)