zoukankan      html  css  js  c++  java
  • hdu2177----取(2堆)石子游戏

    威佐夫博弈博弈论 直接模拟即可 值得一提的是这道题几乎网上所有题解都没有考虑只从小堆取得情况 所以在类似 19 20这种数据出现时,他们都是错误的 只输出了 1 2 而没有 12 20 

     1 #include <cstdio>
     2 
     3 #include <cmath>
     4 
     5 #include <map>
     6 
     7 #include <string.h>
     8 
     9 #define inf 0x3f3f3f3f
    10 
    11 const int maxn=1000000;
    12 
    13 using namespace std;
    14 
    15 int a,b;
    16 
    17 bool judge(int a,int b){
    18 
    19    return a==(int)((b-a)*(sqrt(5.0)+1)/2);
    20 }
    21 
    22 int main()
    23 {
    24     while(scanf("%d%d",&a,&b)!=EOF&&(a||b)){
    25         map<int,int> flag;
    26         if(judge(a,b)){
    27                 printf("0
    ");
    28         } else {
    29           printf("1
    ");
    30           for(int i=0,j=0;i<=a;i++){
    31                 if(!flag[i]&&!flag[i+j]){
    32                // printf("%d %d
    ",i,i+j);
    33                 flag[i]=flag[i+j]=1;
    34                 if(a-i==b-i-j&&a>i&&b>i+j)
    35                 printf("%d %d
    ",i,i+j);
    36                 /*else if((a==i+j&&b>i)||(a==i&&i+j<b)||(b==i+j&&a>i)) printf("%d %d
    ",i,i+j);*/
    37                 j++;
    38                 }
    39         }
    40         flag.clear();
    41         for(int i=0,j=0;i<=a;i++){
    42                 if(!flag[i]&&!flag[i+j]){
    43                // printf("%d %d
    ",i,i+j);
    44                 flag[i]=flag[i+j]=1;
    45                /* if(a-i==b-i-j&&a>i&&b>i+j)
    46                 printf("%d %d
    ",i,i+j);*/
    47                 if((a==i+j&&b>i)||(a==i&&i+j<b)||(b==i+j&&a>i)) printf("%d %d
    ",i,i+j);
    48                 j++;
    49                 }
    50         }
    51         }
    52     }
    53     return 0;
    54 }
    View Code

    这道题提醒我们,网上看题解,不管多大的大牛写的,也一定要带上自己的思考。

  • 相关阅读:
    服务器安装软件
    SQL server
    改变下blog思维
    react 父子组件互相通信
    linux下,文件的权限和数字对应关系详解
    Linux 下非root用户使用docker
    Two 观察者 observer pattern
    one 策略模式 strategy
    ssm maven spring AOP读写分离
    Unknown column in 'where clause'
  • 原文地址:https://www.cnblogs.com/GeniusYang/p/5700430.html
Copyright © 2011-2022 走看看