题意:给定两堆石子,每个人可以从任意一堆拿任意个,也可以从两堆中拿相同的数量,问谁赢。

析:直接运用威佐夫博弈,floor(abs(a, b) * (sqrt(5)+1)/2) == min(a, b) 是必败态。用java的BigDecimal,是很好用的,要十分求Sqrt(5).

代码如下:

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Scanner; public class Main{
public static final int maxn = 3000 + 5; public static void main(String []args){
Scanner cin = new Scanner(System.in);
BigDecimal l = new BigDecimal("2");
BigDecimal r = new BigDecimal("3");
BigDecimal f = new BigDecimal("5");
BigDecimal x = l;
for(int i = 0; i < 500; ++i){
BigDecimal mid = l.add(r).divide(x);
if(mid.multiply(mid).compareTo(f) < 0) l = mid;
else r = mid;
}
l = l.add(BigDecimal.ONE); while(cin.hasNext()){
BigDecimal a = cin.nextBigDecimal();
BigDecimal b = cin.nextBigDecimal();
if(a.compareTo(b) > 0){
BigDecimal tmp = a;
a = b;
b = tmp;
}
BigDecimal t = b.subtract(a).multiply(l).divide(BigDecimal.valueOf(2));
BigInteger p = t.toBigInteger();
BigInteger q = a.toBigInteger();
if(p.equals(q)) System.out.println("0");
else System.out.println("1");
}
}
}

  

  

最新文章

  1. 品牌OEM信息导入工具(实测支持Win10)
  2. bind() live()和delegate 区别
  3. 关于Animation动画事件的几项测试
  4. 230. Kth Smallest Element in a BST
  5. 关于ftp操作内容记录
  6. 在Windows Server 下安装 Oracle 11G 的一般步骤
  7. 将项目添加到Finder侧边栏和工具栏
  8. 【JQuery学习笔记】一、基础篇
  9. Python集成开发环境(Eclipse+Pydev)
  10. VC6迁移到VS2008几个问题——良好的代码,从我做起,从现在开始。
  11. 勾股数组及其应用uva106
  12. DevExpress 学习使用之 LookUpEdit
  13. mac关机快捷键
  14. UIImage创建图片的两种方式的区别
  15. Eclipse 输入出错时自动查找类
  16. tomcat配置虚拟路径保存、访问图片
  17. Android服务——Service
  18. javascript访问html元素的内容(1)
  19. window编程_消息分类
  20. chrome离线包出现的小问题

热门文章

  1. 暑假集训第一周比赛C题
  2. TMS scripter使用心得
  3. Linux 查看CPU信息
  4. 使用 sqoop 将 hive 数据导出到 mysql (export)
  5. php 数据处理--合并,拆分,追加,去重
  6. POJ1060 Modular multiplication of polynomials解题报告 (2011-12-09 20:27:53)
  7. Uva 10820 Send a Table(欧拉函数)
  8. Struts2 - 表单的重复提交问题
  9. 51nod 1250 排列与交换——dp
  10. linux下mysql配置查询