恩佐夫博弈+JAVA大数
题意:http://acm.hdu.edu.cn/showproblem.php?pid=5973
根号5复制后200位就行了,因为BigDecimal不支持开根号,除法二分开根。
import java.io.FileInputStream;
import java.io.PrintStream;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Scanner;
import java.util.*; public class Main{
// static private final String INPUT="C:\\Users\\13606\\Desktop\\草稿.txt";
// static private final String OUTPUT="C:/output.txt";
public static void main(String[] args){
// FileInputStream instream=null;
// PrintStream outstream=null;
/* try{
instream=new FileInputStream(INPUT);
System.setIn(instream);
// outstream=new PrintStream(OUTPUT);
// System.setOut(outstream);
}catch(Exception e){
System.err.println("Error Occurred.");
}*/ //=======================================================================
Scanner cin=new Scanner(System.in);
BigDecimal n,m;
while(cin.hasNextBigDecimal()){
n=cin.nextBigDecimal();
m=cin.nextBigDecimal();
BigDecimal a,b;
BigDecimal n2=new BigDecimal("2.0");
BigDecimal r=new BigDecimal("3.23606797749978969640917366873127623544061835961152572427089724541052092563780489941441440837878227496950817615077378350425326772444707386358636012153345270886677817319187916581127664532263985658053576135041753378500342339241406444208643253909725259262722887629951740244068161177590890949849237139072972889848208864154268989409913169357701974867888442508975413295618317692149997742480153043411503595766833251249881517813940800056242085524354223555610630634282023409333198293395974635227120134174961420263590473788550438968706113566004575713995659556695691756457822195250006053923123400500928676487552972205676625366607448585350526233067849463342224231763727702663240768010444331582573350589309813622634319868647194698997018081895242644596203452214119223291259819632581110417049580704812040345599494350685555185557251238864165501026243631257102444961878942468290340447471611545572320173767659046091852957560357");
r=r.divide(n2);
if(n.compareTo(m)>=0){
BigDecimal c=n.subtract(m);
BigDecimal temp=r.multiply(c);
BigDecimal ans=temp.setScale(0,BigDecimal.ROUND_FLOOR);
if(ans.compareTo(m)==0)
System.out.println(0);
else
System.out.println(1);
}
else{
BigDecimal c=m.subtract(n);
BigDecimal temp=r.multiply(c);
BigDecimal ans=temp.setScale(0,BigDecimal.ROUND_FLOOR);
if(ans.compareTo(n)==0)
System.out.println(0);
else
System.out.println(1);
}
}
}
}
恩佐夫博弈+JAVA大数的更多相关文章
- HDU 5973 Game of Taking Stones 威佐夫博弈+大数
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5973 Game of Taking Stones Time Limit: 2000/1000 MS ...
- 【HDOJ5973】Game of Taking Stones(Java,威佐夫博弈)
思路:有两堆石子,数量任意,可以不同.游戏开始由两个人轮流取石子. 游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子:二是可以在两堆中同时取走相同数量的石子. 最后把石子全部取完 ...
- HDU5973 Game of Geting Stone(威佐夫博弈)
Two people face two piles of stones and make a game. They take turns to take stones. As game rules, ...
- 【hdu5973】高精度威佐夫博弈
题意:输入a, b表示两堆石头数目,威佐夫博弈,问:先手胜负? a, b <= 1e100. 高精度.当a > b时, a = (a-b)*黄金分割比 时是先手败状态.因为a, b < ...
- HD 2177(威佐夫博弈 入门)
取(2堆)石子游戏 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- HDU 1527 取石子游戏(威佐夫博弈)
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission( ...
- hdu1527取石子游戏(威佐夫博弈)
取石子游戏 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- HDU2177取(2堆)石子游戏---(威佐夫博弈)
http://acm.hdu.edu.cn/showproblem.php?pid=2177 取(2堆)石子游戏 Time Limit: 3000/1000 MS (Java/Others) M ...
- hdu1527取石子游戏---(威佐夫博弈)
感谢 http://www.cnblogs.com/yuyixingkong/p/3362476.html 取石子游戏 Time Limit: 2000/1000 MS (Java/Others) ...
随机推荐
- Cash Machine (POJ 1276)(多重背包——二进制优化)
链接:POJ - 1276 题意:给你一个最大金额m,现在有n种类型的纸票,这些纸票的个数各不相同,问能够用这些纸票再不超过m的前提下凑成最大的金额是多少? 题解:写了01背包直接暴力,结果T了,时间 ...
- 关于openstack 专业博主地址.后续更新
首先官方文档要放的 https://docs.openstack.org/ 关于导入镜像方面说的很详细的. https://www.cnblogs.com/liawne/p/9322221.html ...
- Spring注解驱动——组件注册系列
1.@Configuration 从Spring3.0,@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被Annot ...
- c 判断数字是否有限
/* isfinite example */ #include <stdio.h> /* printf */ #include <math.h> /* isfinite, sq ...
- servlet多线程安全问题
Servelet多线程安全问题 原因 一个servlet被实例化一次,当有多个用户访问时,多个线程会访问同一个实例,实例变量就会被不同的用户修改. 简单的案例 新建servlet,访问http://l ...
- Echarts 设置 图标 默认平铺 数据为零时绘画
好久没写了 最近接了一个统计的功能 以前写的都是一些最基础的统计 废话少说 我先把自己遇到的问题列出来 仅供参考 __________________我是分割线__________________ ...
- OpenResty之 lua_shared_dict 指令
1. lua_shared_dict 指令介绍 原文: lua_shared_dict syntax:lua_shared_dict <name> <size> default ...
- 自己动手写Android插件化框架
自己动手写Android插件化框架 转 http://www.imooc.com/article/details/id/252238 最近在工作中接触到了Android插件内的开发,发现自己这种技 ...
- kotlin 之相等判断
在kotlin 中存在二种相等的判断: 1.引用相等 也就是说,两个引用指向同一个对象,使用===操作 ,相反操作为!==来判断 2.结构相等 使用equals 函数相等和==操作符 a?.equal ...
- [Java复习] Spring IoC
1. Spring bean的生命周期? 1. 对Bean进行实例化(相当于new) 对于BeanFactory 当客户向容器请求一个尚未初始化的bean(或初始化bean需要注入另外一个尚未初始化的 ...