• Gym 101147A The game of Osho(SG找规律)


    https://vjudge.net/problem/Gym-101147A

    题意:
    给出G组数,每组数包括两个数B,N,两玩家轮流取数,使得N-num,num<=N并且num是N的整次幂。判断谁赢。

    思路:
    这道题目数据量很大,直接打表是不行的。

    我们可以打一些数据出来观察一下,找一下规律。

    规律是这样的:

    如果B为奇数,那么SG函数0,1间隔出现。

    如果B为偶数,你可以每B+1个数观察一下规律。

    具体可以自己打个数据看一下。

     1 #include<iostream>
     2 #include<algorithm>
     3 #include<cstring>
     4 #include<cstdio>
     5 #include<vector>
     6 #include<stack>
     7 #include<queue>
     8 #include<cmath>
     9 #include<map>
    10 using namespace std;
    11 typedef long long LL;
    12 
    13 LL b,n;
    14 
    15 int main()
    16 {
    17     freopen("powers.in","r",stdin);
    18     int T;
    19     scanf("%d",&T);
    20     while(T--)
    21     {
    22         int num;
    23         int pre=0;
    24         int flag;
    25         scanf("%d",&num);
    26         for(int i=0;i<num;i++)
    27         {
    28             scanf("%lld%lld",&b,&n);
    29 
    30             if(b&1)
    31             {
    32                 if(n&1) flag=1;
    33                 else flag=0;
    34             }
    35 
    36             else
    37             {
    38               if(n%(b+1)==b)
    39                   flag=2;
    40                   else
    41                   flag=((n%(b+1))&1);
    42             }
    43             pre=pre^flag;
    44         }
    45         if(pre) puts("1");
    46         else puts("2");
    47     }
    48     return 0;
    49 }
  • 相关阅读:
    接口分类
    HTTPS和HTTP的主要区别
    协议类
    小程序
    Polyfill
    去重数组
    odoo 接口跨域请求报错
    docker-compose 自定义容器名称
    linux ssh 防暴力破解fail2ban
    odoo 知识点
  • 原文地址:https://www.cnblogs.com/zyb993963526/p/6908838.html
Copyright © 2020-2023  润新知