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

HDU 3951 Coin Game

編輯:C++入門知識

題意:給你n個硬幣排成一圈,編號1-n,只能翻轉連續的1~k個的硬幣。翻最後一枚硬幣者贏。

思路:博弈

 1) 若k=1,則一次只能去翻一枚,奇數先手贏,偶數後手贏。

 2)若k>1:
        
       a: 先手一次翻完,先手贏;
 
       b: 先手不能翻完,第一次必定斷環。只要後手一次翻完,或將其分為相等數量的兩段,

            之後先手怎麼操作後手就怎麼操作,後手必贏。

[cpp] 
#include<stdio.h> 
int main() 

   int t,i,n,k; 
   scanf("%d",&t); 
   for(i=1;i<=t;i++) 
   { 
      scanf("%d%d",&n,&k); 
      if(n<=k) 
         printf("Case %d: first\n",i); 
      else if(k==1) 
      { 
         if(n%2==1) printf("Case %d: first\n",i); 
         else printf("Case %d: second\n",i); 
      } 
      else printf("Case %d: second\n",i); 
   } 
   return 0; 

 

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