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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

动态规划下的巴什博弈

發布時間:2024/10/6 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 动态规划下的巴什博弈 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Alice和Bob

時間限制:?1 Sec??內存限制:?128 MB

題目描述

Alice和Bob在玩這樣的一個游戲, 給定大小為K數組a1,a2,a3……ak。 一開始, 有x枚硬幣, Alice和Bob輪流取硬幣, 每次所取硬幣的枚數一定要在 a1,a2,a3……ak之中。 每局Alice先取, 取走最后一枚硬幣的一方獲勝。 當雙方都采取最優策略的時候, 誰會獲勝? 題目假定a1,a2,a3……ak之中一定有1。

輸入

本題有多組測試數據。

每組數據第一行是兩個數x,k。分別代表開局有X個金幣,和大小為K的數組。

隨后一行是K個數,表示可以取得數。

輸出

對于每組數據,輸出贏家是誰

樣例輸入

4 3 1 3 4 9 3 1 3 4

樣例輸出

Alice Bob #include<bits/stdc++.h> using namespace std; #define MAX 10009 bool win[MAX]; int main() {ios::sync_with_stdio(false);int x,k,a[110];while(cin>>x>>k){//分別代表開局有X個金幣,和大小為K的數組。for(int i=0;i<k;i++)cin>>a[i];win[0]=0;//金幣個數為0時,先手必敗for(int j=1;j<=x;j++)//枚舉所有金幣{win[j]=0;for(int i=0;i<k;i++){//枚舉所有一次可取的個數//當j>=a[i]時,只要有一個a[i],使得j-a[i]為必敗態,那么j就為必勝態;if(j>=a[i]&&!win[j-a[i]])win[j]=1;}}if(win[x]) printf("Alice\n");else printf("Bob\n");}return 0;}

?

總結

以上是生活随笔為你收集整理的动态规划下的巴什博弈的全部內容,希望文章能夠幫你解決所遇到的問題。

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