zoukankan      html  css  js  c++  java
  • Wannafly挑战赛28A(模拟,题意文字游戏)

    题目链接:https://ac.nowcoder.com/acm/contest/217/A

    刚看这道题的时候还以为是博弈论==,然后稍微一想,发现就是个模拟。。。。水题模拟这个游戏过程即可。。

    需要注意的是>=2*y0站在谁的角度,x的角度没错是那样;y的角度的话就是>=2*x0;因为题目说的是对手的y0,轮到你操作了你就是x,对手就是y不管初始怎么样

     1 #include <iostream>
     2 using namespace std;
     3 typedef long long ll;
     4 const int maxn=1e6+5;
     5 ll a[maxn];
     6 ll x0,y0,l;
     7 ll x,y;
     8 
     9 int main()
    10 {
    11     ios::sync_with_stdio(false); cin.tie(0);
    12 
    13     cin>>x0>>y0>>l;
    14 
    15     x=x0; y=y0;
    16     int f1=0,f2=0,p=1;
    17     for(;;)
    18     {
    19         if(p%2)//msc先手
    20         {
    21             if(x>l)
    22             {
    23                 f1=1;
    24                 break;
    25             }
    26             for(;;)
    27             {
    28                 y=y+x;
    29                 if(y>=y0*2) break;
    30             }
    31 
    32             p++;
    33         }
    34         else
    35         {
    36             if(y>l)
    37             {
    38                 f2=1;
    39                 break;
    40             }
    41             for(;;)
    42             {
    43                 x=x+y;
    44                 if(x>=x0*2) break;
    45             }
    46             p++;
    47         }
    48     }
    49     if(f1) cout<<"Yes ";
    50     else cout<<"No ";
    51 
    52     x=x0; y=y0;
    53     f1=0,f2=0,p=1;
    54     for(;;)
    55     {
    56         if(p%2==0)//msc后手
    57         {
    58             if(x>l)
    59             {
    60                 f1=1;
    61                 break;
    62             }
    63             for(;;)
    64             {
    65                 y=y+x;
    66                 if(y>=y0*2) break;
    67             }
    68 
    69             p++;
    70         }
    71         else
    72         {
    73             if(y>l)
    74             {
    75                 f2=1;
    76                 break;
    77             }
    78             for(;;)
    79             {
    80                 x=x+y;
    81                 if(x>=x0*2) break;
    82             }
    83             p++;
    84         }
    85     }
    86     if(f1) cout<<"Yes"<<endl;
    87     else cout<<"No"<<endl;
    88 
    89 
    90     return 0;
    91 }

    完。

  • 相关阅读:
    oracle用户和权限
    oracle中的索引
    oracle中的序列
    oracle中的视图
    oracle PL/SQL块
    oracle创建表案列
    半导体随机存储器
    IEEE754标准
    定点数的移位操作
    真值,原码,反码以及补码和移码总结
  • 原文地址:https://www.cnblogs.com/redblackk/p/9939158.html
Copyright © 2011-2022 走看看