• POJ 1067


    威左夫博弈。使用黄金分割公式。

    k =[k(1+√5)/2],bk= ak + k  (k=0,1,2,…,n 方括号表示取整函数)奇妙的是其中出现了黄金分割数(1+√5)/2 = 1。618…,因此,由ak,bk组成的矩形近似为黄金矩形,由于2/(1+√5)=(5-1)/2,可以先求出j=[a(5-1)/2],若a=[
    j(1+√5)/2],那么a = aj,bj = aj + j,若不等于,那么a = aj+1,bj+1 = aj+1
    + j + 1,若都不是,那么就不是奇异局势。

    这里倒过来使用。

    #include <iostream>
    #include <algorithm>
    #include <cstdio>
    #include <cmath>
    using namespace std;
    
    const double ti=sqrt(5.0);
    
    int main(){
    	int a, b;
    	while(scanf("%d%d",&a,&b)!=EOF){
    		if(a>b){
    			int t=a;
    			a=b;
    			b=t;
    		}
    		if(a&&a==b){
    			puts("1");
    			continue;
    		}
    		int j=b-a;
    		int aj=int(j*(ti+1)/2);
    		if(aj==a)
    		puts("0");
    		else puts("1");
    	}
    	return 0;
    }
    

      

  • 相关阅读:
    点聚-weboffice 6.0 (二)
    点聚-weboffice 6.0 (一)
    Hibernate连接池设置
    ajax工作原理(转)
    LigerUI java SSH小例子
    file标签样式修改
    好久不来了,回来园子看看
    resharper 8.2
    无聊的要死
    无聊
  • 原文地址:https://www.cnblogs.com/jie-dcai/p/4396513.html
Copyright © 2020-2023  润新知