zoukankan      html  css  js  c++  java
  • 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;
    }
    

      

  • 相关阅读:
    IAccessible ( 一 )
    object sender,EventArgs e的一些讲解
    C# 操作符重载
    MSAA简介
    小试NArrange
    C++宏
    Ext.form.ComboBox简单用法
    SQL SERVER 收缩数据库的命令
    ext.grid的配置属性和方法
    磁盘阵列
  • 原文地址:https://www.cnblogs.com/jie-dcai/p/4396513.html
Copyright © 2011-2022 走看看