当前位置:编程学习 > C/C++ >>

HDOJ 4203 Doubloon Game 博弈 找规律

[cpp]
//HDOJ 4203 Doubloon Game 博弈 找规律 
 
/*
题意:有n个硬币,两个人轮流取,每次只能取m个pow,(1,m,m^2...)
      如果先手必败输出0,否则输出第一步最少取走的硬币数量
 
思路:找规律
      当n=2时:
      0 1 2 |3 4 5 |6 7 8 9 ...
      P N N |P N N |P N N P ...
 
      当n=3时:
      0 1 2 3 4 5 6 7 8 9 ...
      P N P N P N P N P N ...
 
      当n=4时:
      0 1 2 3 4 |5 6 7 8 9 |... 
      P N P N N |P N P N N |...
 
      当n=5时:
      0 1 2 3 4 5 6 7 8 9 ...
      P N P N P N P N P N ...
 
      ...
      规律显然
*/ 
 
#include<stdio.h> 
#include<string.h> 
#include<stdlib.h> 
 
int T,n,m; 
int main(){ 
    scanf("%d",&T); 
    while(T--){ 
        scanf("%d %d",&n,&m); 
        if(m%2){ 
            puts(n%2?"1":"0"); 
        }  www.zzzyk.com
        else{ 
            n %= (m+1); 
            if(n==m) 
                printf("%d\n",m); 
            else 
                puts(n%2?"1":"0"); 
        } 
    } 
    return 0; 
补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,