HDU 2897 邂逅明下 ( bash 博弈变形
2024-10-20 16:23:37
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");
}
}
}
}
最新文章
- 【转】一千行MySQL学习笔记
- css3 FlexBox 弹性布局
- MySQL执行存储过程权限
- 33. Search in Rotated Sorted Array
- css考核点整理(六)-水平居中定位的几种方式
- TControl.WMLButtonUp的inherited的作用——是为了给子类控件新的处理消息的机会
- $ npm install opencv ? 你试试?! 在windows环境下,使用node.js调用opencv攻略
- Directshow 通过 put_Owner 指定显示窗口后,自动刷新问题
- ES6的一些知识学习
- MATLAB与C语言对比实例:随机数生成
- 关于文件I/o的原子操作
- python 牛客网 你的输出为:空。请检查一下你的代码,有没有循环输入处理多个case。问题解决
- Latex 公式颜色
- 【php增删改查实例】第四节 -自己 DIY 一个数据库管理工具
- Java中ArrayList实现原理
- Asp.net mvc Kendo UI Grid的使用(二)
- DSP5509项目之用FFT识别钢琴音调(4)之麦克风输入和Line in输入
- 非常漂亮js动态球型云标签特效代码
- jquery 部分函数源码解析
- MySQL数据库----------小知识点
热门文章
- eclipse切换workspace后配置问题
- shell脚本报错 value too great for base
- JavaScript switch语句
- 软件项目技术点(5)——在canvas上绘制动态网格线
- Python基础-继承与派生
- How to use DBVisualizer to connect to Hbase using Apache Phoenix
- Tesseract-OCR-05-主要API功能介绍
- C# 程序启动最小化至任务栏及闪烁
- Linux ->;>; <;user_name>; not in the sudoers file. This incident will be reported.
- mysql 配置详解