zoukankan      html  css  js  c++  java
  • 51Nod 1072 威佐夫游戏

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1072

    有2堆石子。A B两个人轮流拿,A先拿。每次可以从一堆中取任意个或从2堆中取相同数量的石子,但不可不取。拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出2堆石子的数量,问最后谁能赢得比赛。
    例如:2堆石子分别为3颗和5颗。那么不论A怎样拿,B都有对应的方法拿到最后1颗。
     
    Input
    第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 10000)
    第2 - T + 1行:每行2个数分别是2堆石子的数量,中间用空格分隔。(1 <= N <= 2000000)
    Output
    共T行,如果A获胜输出A,如果B获胜输出B。
    Input示例
    3
    3 5
    3 4
    1 9
    Output示例
    B
    A
    A

    题解:黄金分隔
     1 #include <iostream>
     2 #include <cstdio>
     3 #include <algorithm>
     4 #include <cstring>
     5 #include <string>
     6 #include <cmath>
     7 using namespace std;
     8 #define ll long long
     9 const int N=10005;
    10 int main()
    11 {
    12     int t;
    13     cin>>t;
    14     while(t--){
    15         int n,m;
    16         cin>>n>>m;
    17         double k=(sqrt(5.0)+1.0)/2;
    18         if(n<m) swap(n,m);
    19         int d=n-m;
    20         n=(int)d*k;
    21         if(n==m) cout<<"B"<<endl;
    22         else cout<<"A"<<endl;
    23     }
    24     return 0;
    25 }
  • 相关阅读:
    android 源码
    android 保护
    电池信息 显示
    RGB、HSB、HSL 互相转换算法
    网页美工
    css 设计标准
    js 封闭 小结
    格式转换工具
    网页设计规范
    瀑布流分析
  • 原文地址:https://www.cnblogs.com/wydxry/p/7349256.html
Copyright © 2011-2022 走看看