HDU 5973 Aninteresting game 威佐夫博奕(Wythoff Game)
HDU 5973:http://acm.hdu.edu.cn/showproblem.php?pid=5975
题意:
有两堆石子,每次可以从一堆石子中取任意个,或者从两堆石子中取相同个数的石子。两个人轮流用这种策略取石子,谁取完所有的石子就算胜利。问先手胜还是后手胜。
思路:
一模一样的威佐夫博奕(Wythoff Game),结论的是,假设a>b,那么如果((1+sqrt(5))* (a - b))/2 == b ,那么先手必输。但是这道题的数据比较大,所以需要java做高精度。
import javax.swing.*;
import java.util.Scanner;
import java.math.BigDecimal; public class Main{
public static void main(String[] args) {
BigDecimal One = new BigDecimal(1);
BigDecimal Two = new BigDecimal(2);
BigDecimal Five = new BigDecimal(5);
// BigDecimal two = new BigDecimal(2); // System.out.println(One.compareTo(Two));//-1
BigDecimal le = new BigDecimal(2);
BigDecimal ri = new BigDecimal(3);
BigDecimal mid = le.add(ri).divide(Two); for(int i= 1; i<=400; i++) {
mid = le.add(ri).divide(Two);
if(mid.multiply(mid).compareTo(Five) == -1 ) {
le = mid;
}
else ri = mid;
} BigDecimal k = (One.add(mid)).divide(Two);
//System.out.println(k);
Scanner in = new Scanner(System.in); while(in.hasNext()) {
BigDecimal a = in.nextBigDecimal();
BigDecimal b = in.nextBigDecimal();
BigDecimal det = new BigDecimal(0);
int flag = 1;
if(a.compareTo(b) == -1)
{
det = b.subtract(a);
det = det.multiply(k);
//long l = bd.setScale( 0, BigDecimal.ROUND_DOWN ).longValue(); // 向下取整
det = det.setScale( 0, BigDecimal.ROUND_DOWN );
if(det.compareTo(a) == 0) {
flag = 0;
}
}
else {
det = a.subtract(b);
det = det.multiply(k);
//long l = bd.setScale( 0, BigDecimal.ROUND_DOWN ).longValue(); // 向下取整
det = det.setScale( 0, BigDecimal.ROUND_DOWN );
if(det.compareTo(b) == 0) {
flag = 0;
}
}
System.out.println(flag); } }
}
HDU 5973
HDU 5973 Aninteresting game 威佐夫博奕(Wythoff Game)的更多相关文章
- 博弈论基础知识: 巴什博奕+斐波那契博弈+威佐夫博奕+尼姆博弈(及Staircase)(转)
(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个.最后取光者得胜.若(m+1) | n,则先手必败,否则先手必胜.显然,如果n=m+1 ...
- hdu 2177 取(2堆)石子游戏(威佐夫博奕)
题目链接:hdu 2177 这题不是普通的 Nim 博弈,我想它应该是另一种博弈吧,于是便推 sg 函数打了个 20*20 的表来看,为了方便看一些,我用颜色作了标记,打表代码如下: #include ...
- hdu 2177(威佐夫博奕)
题意:容易理解,在威佐夫博奕的基础上新增加了一条要求:就是如果在赢得条件下,输出第一步怎么走. 分析:使用暴力判断,详细见代码. 代码: #include<stdio.h> #includ ...
- hdu 1527(威佐夫博奕)
题意:容易理解. 分析:威佐夫博奕的模板题. 代码实现: #include<stdio.h> #include<string.h> #include<math.h> ...
- 【威佐夫博奕】 betty定理 poj 1067
Description 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同数量的石子.最后 ...
- poj1067威佐夫博奕
取石子游戏 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 31490 Accepted: 10374 Descripti ...
- 博弈---威佐夫博奕(Wythoff Game)
这个写的不错 威佐夫博奕(Wythoff Game):有两堆各若干个物品,两个人轮流从某一堆或同 时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜. 这种情况下是颇为复杂 ...
- 新疆大学ACM-ICPC程序设计竞赛五月月赛(同步赛)- chess(威佐夫博奕)
---恢复内容开始--- 链接:https://www.nowcoder.com/acm/contest/116/G来源:牛客网 题意:一个棋盘,老王和小人下棋,棋子只能往下或者往左或者往左下走,小人 ...
- Poj 1067 取石子游戏(NIM,威佐夫博奕)
一.Description 有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子.游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同数量的石子. ...
随机推荐
- Linux下zookeeper下载与安装教程
原文连接:(http://www.studyshare.cn/blog-front//blog/details/1169/0)一.下载 官网下载:点这里 百度网盘下载:点这里 官网下载图示: jav ...
- Confluence未授权模板注入/代码执行(CVE-2019-3396)
--- title: Confluence未授权模板注入/代码执行(CVE-2019-3396) tags: [poc,cve] num :g7y12 --- # 简介 --- Confluence是 ...
- Mac OS 安装mysqlclient 遇到的坑~
最近在学习Python, 因为Django连接mysql 需要安装mysqlclient, 但Mac安装遇到各种问题,这里记录一下,避免以后再踩坑. 1. 正常情况下,安装mysqlclient ...
- Apache ActiveMQ任意文件写入漏洞(CVE-2016-3088)复现
Apache ActiveMQ任意文件写入漏洞(CVE-2016-3088)复现 一.漏洞描述 该漏洞出现在fileserver应用中,漏洞原理:ActiveMQ中的fileserver服务允许用户通 ...
- [转载]windows下mongodb安装与使用整理
windows下mongodb安装与使用整理 一.首先安装mongodb 1.下载地址:http://www.mongodb.org/downloads 2.解压缩到自己想要安装的目录,比如d:\mo ...
- 素数筛法(Eratosthenes筛法)
介绍 Eratosthenes筛法,又名埃氏筛法,对于求1~n区间内的素数,时间复杂度为n log n,对于10^6^ 以内的数比较合适,再超出此范围的就不建议用该方法了. 筛法的思想特别简单: 对于 ...
- java NIO知多少
背景 Linux系统中的IO操作内部相当复杂,下面是一张带图片的LinuxIO相关层级关系: 下面是一个简化版本Linux内部IO层级图: 对此我的理解,java程序员版本的IO理解: java中的I ...
- (转载)分享常用的GoLang包工具
分享常用的GoLang包工具 包名 链接地址 备注 Machinery异步队列 https://github.com/RichardKnop/machinery Mqtt通信 github.com/e ...
- Go输入输出格式化Printf
package main import ( "fmt" "os" ) type point struct { x, y int } func main() { ...
- 多渠道推广场景下,如何实现 App 用户增长的精准归因?
为了实现用户的快速增长,以推广 App 为目标的线上广告投放是很多平台获取新用户的重要方式.随道移动互联网的发展,现在 App 推广的渠道越来越丰富,除了 WAP 站点.第三方 App 之外,HTML ...