日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HDU 3951 (博弈) Coin Game

發布時間:2025/3/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HDU 3951 (博弈) Coin Game 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

先考慮兩種簡單的情況:

  • 如果先手能一次把硬幣拿完,即 k >= n ,那么先手勝
  • 如果每次只能拿一個硬幣, 即 k = 1 ,那么如果有奇數個硬幣先手勝,如果有偶數個硬幣后手勝。

剩下的情況就是先手一次拿不完,而且每次可以拿一個或者拿兩個硬幣。

剩下的硬幣會變成一條鏈,如果后手能拿完最好,不能拿完的話就拿一個或兩個硬幣使這條鏈變成長度相等的兩條。

這一定是能做到的,

因為如果這條鏈有奇數個硬幣,那么拿走中間的那個;

如果有偶數個硬幣,拿走中間的兩個。

變成相等的兩條鏈之后,先手在哪條鏈拿走多少個硬幣,后手就在另外一條鏈中拿走同樣的硬幣,直到拿完所有的硬幣。

因此后手必勝。

1 #include <cstdio> 2 3 int main() 4 { 5 //freopen("in.txt", "r", stdin); 6 7 int T; scanf("%d", &T); 8 for(int kase = 1; kase <= T; kase++) 9 { 10 int n, k; 11 scanf("%d%d", &n, &k); 12 printf("Case %d: ", kase); 13 bool first; 14 if(k == 1) first = n & 1 ? true : false; 15 else if(k >= n) first = true; 16 else first = false; 17 printf("%s\n", first ? "first" : "second"); 18 } 19 20 return 0; 21 } 代碼君

?

轉載于:https://www.cnblogs.com/AOQNRMGYXLMV/p/4462937.html

總結

以上是生活随笔為你收集整理的HDU 3951 (博弈) Coin Game的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。