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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

巴什博奕(Bash_Game)

發布時間:2024/10/5 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 巴什博奕(Bash_Game) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、定義

只有一堆n個物品,兩個人輪流從這堆物品中取物, 規定每次至少取一個,最多取m個。最后取光者得勝。

二、分析

我們從最簡單的情景開始分析

當石子有1?m1?m個時,毫無疑問,先手必勝

當石子有m+1m+1個時,先手無論拿幾個,后手都可以拿干凈,先手必敗

當石子有m+2?2mm+2?2m時,先手可以拿走幾個,剩下m+1m+1個,先手必勝

我們不難發現,面臨m+1m+1個石子的人一定失敗。

這樣的話兩個人的最優策略一定是通過拿走石子,使得對方拿石子時還有m+1m+1個

我們考慮往一般情況推廣

  • 設當前的石子數為n=k?(m+1)+rn=k?(m+1)+r

先手會首先拿走rr個,接下來假設后手拿走xx個,先手會拿走m+1?xm+1?x個,這樣博弈下去后手最終一定失敗

  • 設當前的石子數為n=k?(m+1)n=k?(m+1)

假設先手拿xx個,后手一定會拿m+1?xm+1?x個,這樣下去先手一定失敗

三、變形

兩個人輪流報數,每次至少報一個,最多報十個,誰能報到100者勝。

對于巴什博弈,那么我們規定,如果最后取光者輸,那么又會如何呢?

(n-1)%(m+1)==0則后手勝利

先手會重新決定策略,所以不是簡單的相反行的

例如n=15,m=3

后手 先手 剩余

0? ? ? 2? ? ? 13

1? ? ? 3? ? ? ?9

2? ? ? 2? ? ? ?5

3? ? ?1? ? ? ? 1

1? ? ?0? ? ? ? 0

先手勝利 輸的人最后必定只抓走一個,如果>1個,則必定會留一個給對手

四、解決方案

1、結論

#include<cstdio> int main() {int n,m;scanf("%d%d",&n,&m);if(n % (m+1) !=0) printf("first win");else printf("second win");return 0; }

二、SG定理

#include <bits/stdc++.h>using namespace std;const int N = 1000 + 10, INF = 0x3f3f3f3f;int sg[N], sm[N]; bool vis[N]; void SG(int n, int m) {for(int i = 0; i <= n; i++){memset(vis, 0, sizeof vis);for(int j = max(i-m, 0); j < i; j++) vis[sg[j]] = true;//i的后繼是[max(i-m,0), i-1]for(int j = 0; j <= n; j++)//mex運算if(! vis[j]){sg[i] = j; break;}} } int main() {int t, n, m;scanf("%d", &t);while(t--){scanf("%d%d", &n, &m);SG(n, m);puts(sg[n] ? "first" : "second");}return 0; }

三、DFS

?可以解決,但是TLE!!!

五、例題

http://poj.org/problem?id=2348

http://acm.hdu.edu.cn/showproblem.php?pid=1846

http://acm.hdu.edu.cn/showproblem.php?pid=4764

http://acm.hdu.edu.cn/showproblem.php?pid=1848

六、參考文章

https://www.cnblogs.com/zwfymqz/p/8460192.html

https://blog.csdn.net/luomingjun12315/article/details/45479073

總結

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

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