程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> HDOJ 4203 Doubloon Game 博弈 找規律

HDOJ 4203 Doubloon Game 博弈 找規律

編輯:C++入門知識

[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.2cto.com
        else{ 
            n %= (m+1); 
            if(n==m) 
                printf("%d\n",m); 
            else 
                puts(n%2?"1":"0"); 
        } 
    } 
    return 0; 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved