【BJOI2009】取石子游戏
来源:互联网 发布:linux测试环境搭建 编辑:程序博客网 时间:2024/06/05 04:15
【BJOI2009】取石子游戏
【题目描述】
小H和小Z正在玩一个取石子游戏。 取石子游戏的规则是这样的,每个人每次可以从一堆石子中取出若干个石子,每次取石子的个数有限制,谁不能取石子时就会输掉游戏。 小H先进行操作,他想问你他是否有必胜策略,如果有,第一步如何取石子。
【输入】
输入文件的第一行为石子的堆数N 接下来N行,每行一个数Ai,表示每堆石子的个数 接下来一行为每次取石子个数的种类数M 接下来M行,每行一个数Bi,表示每次可以取的石子个数,输入保证这M个数按照递增顺序排列。
【输出】
输出文件第一行为“YES”或者“NO”,表示小H是否有必胜策略。 若结果为“YES”,则第二行包含两个数,第一个数表示从哪堆石子取,第二个数表示取多少个石子,若有多种答案,取第一个数最小的答案,若仍有多种答案,取第二个数最小的答案。
【输入样例】
4
7 6 9 3
2
1 2
【输出样例】
YES
1 1
【数据范围】
对于全部数据,N≤10,Ai≤1000,M≤10,Bi≤10
【题解】
取石子游戏的升级版。普通的取石子游戏只有一个每次取的上限m,所以SG(n)=n mod m。但这里是限制了每次取的方案,所以要另辟蹊径。
由于数据很小,所以直接暴力SG值是可行的。
观察到Bi≤10,所以其实暴力出0~10的SG值以后,找规律也是可行的。
归根结底,博弈论的思想就是暴力SG+寻找规律= =
【代码】
虽然我是暴力,但一样秒杀了QwQ
【BJOI2009】取石子游戏#代码
0 0
- 【BJOI2009】取石子游戏
- "取石子"游戏
- 取石子游戏
- 取石子游戏
- 取石子游戏
- POJ1067取石子游戏
- PKU1067 取石子游戏
- 取石子游戏
- 取石子游戏
- 1067 取石子游戏
- PKU1067(取石子游戏)
- 1679 取石子游戏
- 1773 取石子游戏
- 取石子游戏
- POJ_取石子游戏
- 取石子游戏
- 2071 取石子游戏
- poj1067(取石子游戏)
- hdu 2093(简单模拟)
- delphi中多线程的简单应用
- SGU101 求有重边的无向图欧拉迹
- 第五周项目1拓展 判断是否为矩形 求矩形面积
- java自学视频汇总
- 【BJOI2009】取石子游戏
- android 语音识别应用开发
- jdk5.0新特性
- zoj 2954 Hanoi Tower(汉诺塔)
- 对象数组操作长方柱类
- Ubuntu1204 安装深度音乐 + 百度音乐插件
- GoLang保留关键字
- Android中的任务栈(Task Stack)
- imx283 zlg单板调试