HDU 2897 邂逅明下 ( bash 博弈变形

题目大意

有三个数字n,p,q,表示一堆硬币一共有n枚,从这个硬币堆里取硬币,一次最少取p枚,最多q枚,如果剩下少于p枚就要一次取完。两人轮流取,直到堆里的硬币取完,最后一次取硬币的算输。

解题思路

  • 若 n == k * (p + q), 则 A 必胜 第一次 A 取 p 个, 之后每次 B 取 x 个时, A 取 (p + q - x) 个, 则最后当 B 面对有 p 个硬币的时候, 必输.
  • 若 n == k * (p + q) + left, left <= p, 则 B必胜 , 若 A 取 x 个, 则 B 取 (p + q - x) 个, 则最后 A 会面对 有 left (left <= p) 的情况, p 必输.
  • 若 n == k * (p + q) + left, left > p, 则 A必胜 , 第一轮 A 取 t (1 < left - t < p) 个, 之后每次 B 取 x 个时, A 取 (p + q - x) 个, 则最后当 B 面对有 t (1 < left - t < p) 个硬币的时候, 必输.

代码

package 博弈;

import java.util.Scanner;

public class HDU2897 {

	public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while(in.hasNext()) {
int n = in.nextInt();
int p = in.nextInt();
int q = in.nextInt();
if(n % (p + q) == 0)
System.out.println("WIN");
else {
int left = n % (p + q);
if(left <= p)
System.out.println("LOST");
else if(left > p)
System.out.println("WIN");
}
}
} }

最新文章

  1. 【转】一千行MySQL学习笔记
  2. css3 FlexBox 弹性布局
  3. MySQL执行存储过程权限
  4. 33. Search in Rotated Sorted Array
  5. css考核点整理(六)-水平居中定位的几种方式
  6. TControl.WMLButtonUp的inherited的作用——是为了给子类控件新的处理消息的机会
  7. $ npm install opencv ? 你试试?! 在windows环境下,使用node.js调用opencv攻略
  8. Directshow 通过 put_Owner 指定显示窗口后,自动刷新问题
  9. ES6的一些知识学习
  10. MATLAB与C语言对比实例:随机数生成
  11. 关于文件I/o的原子操作
  12. python 牛客网 你的输出为:空。请检查一下你的代码,有没有循环输入处理多个case。问题解决
  13. Latex 公式颜色
  14. 【php增删改查实例】第四节 -自己 DIY 一个数据库管理工具
  15. Java中ArrayList实现原理
  16. Asp.net mvc Kendo UI Grid的使用(二)
  17. DSP5509项目之用FFT识别钢琴音调(4)之麦克风输入和Line in输入
  18. 非常漂亮js动态球型云标签特效代码
  19. jquery 部分函数源码解析
  20. MySQL数据库----------小知识点

热门文章

  1. eclipse切换workspace后配置问题
  2. shell脚本报错 value too great for base
  3. JavaScript switch语句
  4. 软件项目技术点(5)——在canvas上绘制动态网格线
  5. Python基础-继承与派生
  6. How to use DBVisualizer to connect to Hbase using Apache Phoenix
  7. Tesseract-OCR-05-主要API功能介绍
  8. C# 程序启动最小化至任务栏及闪烁
  9. Linux -&gt;&gt; &lt;user_name&gt; not in the sudoers file. This incident will be reported.
  10. mysql 配置详解