亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

動態規劃預測游戲輸贏的問題總結

2019-11-10 17:55:43
字體:
來源:轉載
供稿:網友

在leetcode中,經常會遇到判斷兩人游戲,一方是輸還是贏的問題。有guess number higher or lower, can I win,PRedict the winner等。這類問題都假設雙方在最優策略下,甲方是否會贏。 這類問題都可以用動態規劃來解決,關鍵在于采用top-down的備忘錄策略,每解決一個小的子問題,都把相應的結果記錄在備忘錄上,下次遇到相同的問題時,直接查詢即可。這樣可以把原來O(n!)的復雜度降低到O(2^n)的復雜度。 1) can I win: In the “100 game,” two players take turns adding, to a running total, any integer from 1..10. The player who first causes the running total to reach or exceed 100 wins.

What if we change the game so that players cannot re-use integers?

For example, two players might take turns drawing from a common pool of numbers of 1..15 without replacement until they reach a total >= 100.

Given an integer maxChoosableInteger and another integer desiredTotal, determine if the first player to move can force a win, assuming both players play optimally.

You can always assume that maxChoosableInteger will not be larger than 20 and desiredTotal will not be larger than 300. 思路:用hash表記錄每種可能的選擇所對應的結果,這里map

class Solution { map<int,bool> m;//用來記錄子問題的備忘錄 bool helper(int desiredTotal, int used,int n) { if(m.count(used)!=0) return m[used];//如果m中已經有結果,直接輸出。 int bit=1; if(desiredTotal<=0)//說明上次,即對方已經達到想要的和,輸 { m[used]=0; return 0; } for(int i=0;i<n;i++,bit<<=1) { if((used&bit)==0)//該i未被用 { if(i>=desiredTotal)//能達到和 { m[used]=1; return true; } used|=bit; bool nextwinner=helper(desiredTotal-i-1,used,n);//對方的輸贏 used-=bit; if(!nextwinner)//對方輸 { m[used]=1; return true; } } } m[used]=0; return 0; } public: bool canIWin(int maxChoosableInteger, int desiredTotal) { int n=maxChoosableInteger; int sum=(1+maxChoosableInteger)*maxChoosableInteger/2; if(sum<desiredTotal) return false; if(maxChoosableInteger>=desiredTotal) return true; if(desiredTotal==0) return 1; return helper(desiredTotal,0,n); }};

2) predict the winner: Given an array of scores that are non-negative integers. Player 1 picks one of the numbers from either end of the array followed by the player 2 and then player 1 and so on. Each time a player picks a number, that number will not be available for the next player. This continues until all the scores have been chosen. The player with the maximum score wins.

Given an array of scores, predict whether player 1 is the winner. You can assume each player plays to maximize his score.

Example 1: Input: [1, 5, 2] Output: False Explanation: Initially, player 1 can choose between 1 and 2. If he chooses 2 (or 1), then player 2 can choose from 1 (or 2) and 5. If player 2 chooses 5, then player 1 will be left with 1 (or 2). So, final score of player 1 is 1 + 2 = 3, and player 2 is 5. Hence, player 1 will never be the winner and you need to return False. Example 2: Input: [1, 5, 233, 7] Output: True Explanation: Player 1 first chooses 1. Then player 2 have to choose between 5 and 7. No matter which number player 2 choose, player 1 can choose 233. Finally, player 1 has more score (234) than player 2 (12), so you need to return True representing player1 can win. Note: 1 <= length of the array <= 20. Any scores in the given array are non-negative integers and will not exceed 10,000,000. If the scores of both players are equal, then player 1 is still the winner. 也是雙方游戲,最后和大的獲勝.如果一方選擇了兩端的任意一個數,可以看成加,而另一方選擇它的數對于自己來說可以看成是減。只要最后的結果不小于0,說明自己就比對手高。這里也用一個存儲記錄表來記錄當前子問題的結果。對于子數組中的該問題,dp[s][e] 表示對于在數組nums[s,…,e]中問題的解。

class Solution {public: bool PredictTheWinner(vector<int>& nums) { int i,n=nums.size(); vector<vector<int>> dp(n,vector<int>(n,0));//備忘錄 int res=DP(dp,0,n-1,nums); return res>=0; } int DP(vector<vector<int>> &dp, int s, int e,vector<int>& nums) { if(s==e) return nums[s]; if(dp[s][e]!=0) return dp[s][e]; int tmp=max(nums[s]-DP(dp,s+1,e,nums),nums[e]-DP(dp,s,e-1,nums)); dp[s][e]=tmp; return dp[s][e]; }};

這里涉及到的雙方對弈的游戲,都假設對手所作的決策也是最優的,即minimax算法。但是,運用備忘錄的DP算法,而不是遞歸,可以大大加快速度。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品自在久久| 国产精品丝袜视频| 欧美精品免费播放| 亚洲91精品在线| 成人精品一区二区三区电影免费| 日韩男女性生活视频| 国产精品网站视频| 国产精品r级在线| 日韩欧美成人精品| 久久久久久久999精品视频| 欧美黑人国产人伦爽爽爽| 91中文在线观看| 亚洲美腿欧美激情另类| 琪琪亚洲精品午夜在线| 国产精品视频地址| 最近2019中文字幕大全第二页| 在线视频日本亚洲性| 奇米成人av国产一区二区三区| 精品中文字幕乱| 欧美乱妇高清无乱码| 亚洲激情久久久| 欧美老妇交乱视频| 国产精品视频26uuu| 国产精品网红直播| 国产成人一区三区| 国产精品对白刺激| 国产成人一区二区三区小说| 亚洲全黄一级网站| 久久激情视频久久| 91热福利电影| 欧美裸体xxxx| 亚洲激情视频在线播放| 国产精品香蕉av| 91在线免费视频| 国产精品美女免费视频| 欧美精品福利在线| 色婷婷亚洲mv天堂mv在影片| 国产精品偷伦免费视频观看的| 热99在线视频| 欧美成人国产va精品日本一级| 精品亚洲aⅴ在线观看| 久久精品久久久久电影| 91欧美激情另类亚洲| 97视频在线观看免费高清完整版在线观看| 国产欧美va欧美va香蕉在线| 韩国三级电影久久久久久| 国产中文字幕91| 97免费在线视频| 7777kkkk成人观看| 亚洲视频在线观看网站| 136fldh精品导航福利| 欧美成人久久久| 亚洲一区亚洲二区亚洲三区| 欧美成人免费网| 久久视频在线直播| 成人激情免费在线| 97精品在线视频| 操人视频在线观看欧美| 51精品国产黑色丝袜高跟鞋| 九九热精品视频| 久久99久久99精品免观看粉嫩| 国产亚洲精品一区二区| 亚洲精品久久久一区二区三区| 久久久久国产精品免费网站| 在线播放亚洲激情| 欧美精品精品精品精品免费| 欧美电影在线观看高清| 国内精品久久久久影院优| 青青草精品毛片| 亚洲精品中文字幕有码专区| 久久中文字幕一区| 亚洲天堂第二页| 国产亚洲aⅴaaaaaa毛片| 亚洲一区二区国产| 成人羞羞国产免费| 国产亚洲精品高潮| 欧美洲成人男女午夜视频| 超碰日本道色综合久久综合| 日韩欧美中文字幕在线播放| 国产+成+人+亚洲欧洲| 日韩大胆人体377p| 久久精品色欧美aⅴ一区二区| 91在线观看免费网站| 国产精品福利在线| 亚洲欧洲在线播放| 亚洲天堂色网站| 日韩成人在线视频观看| 亚洲精品视频中文字幕| 亚洲视频欧洲视频| 亚洲影院污污.| 欧美寡妇偷汉性猛交| 国产精品美女久久久久av超清| 孩xxxx性bbbb欧美| 欧美激情极品视频| 欧美精品在线免费观看| 91精品国产自产在线老师啪| 亚洲电影成人av99爱色| 欧洲亚洲女同hd| 国产美女精彩久久| 日韩中文字幕在线视频| 日韩女优在线播放| 欧美中文字幕在线| 国产精品视频yy9099| 亚洲一区亚洲二区亚洲三区| 久久成人精品一区二区三区| 欧美激情中文网| 亚洲精选在线观看| 精品一区电影国产| 欧洲成人性视频| 国产成人精品视频| 中文字幕日韩有码| 91极品女神在线| 日韩欧美视频一区二区三区| 欧美专区中文字幕| 国产69精品久久久久9| 上原亚衣av一区二区三区| 亚洲欧美国产制服动漫| 色噜噜狠狠色综合网图区| 国产精品视频地址| 亚洲qvod图片区电影| 亚洲精品综合久久中文字幕| 欧美超级乱淫片喷水| 精品成人国产在线观看男人呻吟| 欧美成人午夜激情视频| 91高清视频免费| 亚洲一区中文字幕| 精品久久久999| 亚洲欧美国产精品| 欧美一级淫片aaaaaaa视频| 欧美在线免费观看| 51精品在线观看| 国产a∨精品一区二区三区不卡| 亚洲自拍另类欧美丝袜| 国产一区视频在线| 精品香蕉一区二区三区| 欧美日韩中文在线观看| 欧美精品一二区| 国产日韩在线一区| 奇米4444一区二区三区| 欧美性猛交xxxx黑人| 国产精品第七影院| 亚洲免费视频观看| 在线视频一区二区| 欧美亚洲日本黄色| 日韩中文字幕网| 夜夜嗨av一区二区三区免费区| 国产一区二区激情| 亚洲人成啪啪网站| 欧美精品电影免费在线观看| 91美女片黄在线观| 亚洲综合色激情五月| 久久久电影免费观看完整版| 国产精品久久久久久超碰| 伊人男人综合视频网| 亚洲精品国产成人| 国产精品视频永久免费播放| 日韩一区视频在线| 国产91在线播放精品91| 97精品视频在线| 亚洲在线观看视频网站| 尤物九九久久国产精品的特点| 久久精品国产亚洲| 午夜欧美大片免费观看| 亚洲性生活视频|