HDU 5973 博弈
来源:互联网 发布:伺服电机plc编程 编辑:程序博客网 时间:2024/09/21 06:34
题意:这个就是威佐夫博弈
难点:数据有点大 所以可以用java 做保留黄金分割 小数点后100位以上 可以用二分求
链接:点击打开链接
代码:
import java.util.*;import java.math.*;public class Main{ public static void main(String args[ ]){ Scanner in=new Scanner(System.in); BigDecimal one=new BigDecimal(1); BigDecimal two=new BigDecimal(2); BigDecimal thr=new BigDecimal(3); BigDecimal five=new BigDecimal(5); BigDecimal eps=new BigDecimal(0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001); ; BigDecimal l=two,r=thr; while(r.subtract(l).compareTo(eps)>0){ BigDecimal mid=l.add(r.subtract(l).divide(two)); if(mid.multiply(mid).compareTo(five)>0){ r=mid; } else l=mid; } BigDecimal gold=l.add(one).divide(two); // System.out.println(gold); while(in.hasNext()){ BigDecimal a=in.nextBigDecimal(); BigDecimal b=in.nextBigDecimal(); if(a.compareTo(b)>0){ BigDecimal c=a; a=b; b=c; } // System.out.println(a); // System.out.println(b); a=a.setScale(0,BigDecimal.ROUND_DOWN); b=b.subtract(a).multiply(gold).setScale(0, BigDecimal.ROUND_DOWN); b=b.setScale(0,BigDecimal.ROUND_DOWN); //b.setScale(0, BigDecimal.ROUND_DOWN); // System.out.println(a); // System.out.println(b); if(a.compareTo(b)==0) System.out.println(0); else System.out.println(1); } }}
阅读全文
0 0
- HDU 5973 博弈
- hdu 5973 大数威佐夫博弈
- HDU-5973 威佐夫博弈+大数
- HDU博弈
- HDU 5973 威佐夫博弈+JAVA高精度
- HDU 5754 博弈(威佐夫博弈)
- John-博弈hdu
- hdu 1850 第一次博弈
- HDU 4023 贪心+博弈
- 【dfs博弈】HDU 4155
- hdu 2516 博弈
- HDU 1079 博弈
- 威佐夫博弈 hdu 2177
- HDU 1536 (博弈SG)
- hdu 2149 (博弈)
- HDU 2147 bash博弈
- hdu 1079(博弈)
- hdu 1517 (博弈)
- 书架(一)
- windows 删除服务
- POJ 1702 Eva's Balance 笔记
- 几个你不得不知的经典名词解释.
- 配置Cocos Studio anroid环境问题
- HDU 5973 博弈
- HAProxy
- setSystemUiVisibility方法和getSystemUiVisibility方法
- 玲珑杯 1125 咸鱼商店 【二分+01背包】
- matlab实验报告
- es6let,const命令(一)
- 和泉纱雾
- Hibernate关系(双向一对一、一对多、多对多和自身多对多)映射注解整理
- 史上最简单的 MySQL 教程(二十)「数据的高级操作 之 主键冲突」