标签:++ other ima out 博弈 code view pie compare
InputInput contains multiple sets of test data.Each test data occupies one line,containing two non-negative integers a andb,representing the number of two stones.a and b are not more than 10^100.OutputFor each test data,output answer on one line.1 means you are the winner,otherwise output 0.Sample Input
2 1 8 4 4 7
Sample Output
0 1 0
题解:威佐夫博弈板题,使用java大数;
对于一个奇异状态满足,a[k]=k*(sqrt(5)+1)/2;b[k]=a[k]+k;
参考代码:
1 import java.math.BigDecimal; 2 import java.util.Scanner; 3 4 public class Main{ 5 public static void main(String[] args){ 6 BigDecimal two=new BigDecimal(2); 7 BigDecimal three=new BigDecimal(3); 8 BigDecimal five=new BigDecimal(5); 9 BigDecimal l=two, r=three; 10 for(int i=0; i<500; i++){ 11 BigDecimal mid=l.add(r).divide(two); 12 if(mid.multiply(mid).compareTo(five)<0) l=mid; 13 else r=mid; 14 } 15 BigDecimal gold=l.add(BigDecimal.ONE).divide(two); 16 BigDecimal a, b; 17 Scanner cin=new Scanner(System.in); 18 while(cin.hasNext()){ 19 a=cin.nextBigDecimal(); 20 b=cin.nextBigDecimal(); 21 if(a.compareTo(b)>0){ 22 BigDecimal tmp=a; 23 a=b;b=tmp; 24 } 25 a=a.setScale(0, BigDecimal.ROUND_DOWN); 26 b=b.subtract(a).multiply(gold); 27 b=b.setScale(0, BigDecimal.ROUND_DOWN); 28 if(a.compareTo(b)==0) System.out.println("0"); 29 else System.out.println("1"); 30 } 31 } 32 }
HDU5973 Game of Geting Stone(威佐夫博弈)
标签:++ other ima out 博弈 code view pie compare
原文地址:https://www.cnblogs.com/songorz/p/10331498.html