麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

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

375. Guess Number Higher or Lower II -Medium

2019-11-14 09:48:42
字體:
來源:轉載
供稿:網友

A# Question

We are playing the Guess Game. The game is as follows:

I pick a number from 1 to n. You have to guess which number I picked.

Every time you guess wrong, I’ll tell you whether the number I picked is higher or lower.

However, when you guess a particular number x, and you guess wrong, you pay $x. You win the game when you guess the number I picked.

Given a particular n ≥ 1, find out how much money you need to have to guarantee a win.

猜數字游戲,A在1-n中選擇一個數字,當B猜中A選擇的數字,B就贏得比賽。每當B猜錯,A會告訴B是否太大還是太小,同時B要給A對應猜的數字的錢。現在給出n,請你找出你保證贏得比賽所需花費的最少的錢

Example

n = 10, I pick 8.

First round: You guess 5, I tell you that it’s higher. You pay $5. Second round: You guess 7, I tell you that it’s higher. You pay $7. Third round: You guess 9, I tell you that it’s lower. You pay $9.

Game over. 8 is the number I picked.

You end up paying 5 + 7 + 9 = 21.

這里的例子給出的21只是一種猜測情況所需的花費,而不是題目的答案

Solution

這道題可以用dp求解。題目求的是保證贏得比賽所需花費的最少的,即最壞的情況下,最少需要花多少錢保證贏得比賽。因為A會在1-n中任意選擇一個數字x,而B直到猜到數字x時會有一個最大花費,那么我們只需求得到底A選擇哪個數字時B猜測的最大花費最小,這樣當A選該數字時,B總能保證在小于K的花費下獲勝。(這里的最大花費指在策略最優,運氣最差的情況下的花費)

根據上面的思路,我們定義dp[i][j]:在[i, j]范圍中保證贏得游戲所需花費最少的錢。因為是最壞的情況,所以在策略最優的情況下,B始終不會猜中數字,那么當B猜數字x的情況下,子問題將會出現兩種情況“猜的數字過小”,“猜的數字過大”,我們只需要比較出花費較多的情況即可,所以B猜數字x的最大花費為:B_Choose_X = x + max(dp[i][x - 1], dp[x + 1][j]),在得到A選擇任意x,B所需的最大花費時,dp[i][j] = min{B_Choose_1, B_Choose_2, …, B_Choose_N}

class Solution(object): def getMoneyAmount(self, n): """ :type n: int :rtype: int """ self.dp = [[0 for _ in range(n + 1)] for _ in range(n + 1)] return self.solve(1, n) def solve(self, s, e): # 保存dp中間變量,減少重復計算 if self.dp[s][e] != 0: return self.dp[s][e] # 如果只有一個數字可以選擇,那么B肯定能猜中,不需要花費錢 if s >= e: return 0 min_cost = float('inf') # 計算A選擇任一數字,B所需的最多的錢 for x in range(s, e): max_cost = x + max(self.solve(s, x - 1), self.solve(x + 1, e)) if min_cost > max_cost: min_cost = max_cost # 取所需最少的錢的情況 self.dp[s][e] = min_cost return self.dp[s][e]
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产日韩免费观看 | 久久精品99北条麻妃 | 黄色久 | av在线不卡免费 | 色婷婷久久久亚洲一区二区三区 | 久草经典视频 | 国产一区视频在线免费观看 | 欧美一级理论 | 一级在线 | 一级黄色性感片 | 精品久久久久久综合日本 | 精品中文字幕在线播放 | hdhdhdhd19日本人| 国产一级毛片高清 | 国产一级小视频 | 国产精品久久99精品毛片三a | 久久嗨 | 古装三级在线观看 | 蜜桃网站在线观看 | 免费专区 - 91爱爱 | 一级国产免费 | 欧美亚洲国产成人综合在线 | av免费在线不卡 | 日日天日日夜日日摸 | 成人一区久久 | av在线直播观看 | 毛片在线免费观看网址 | 国产精品观看在线亚洲人成网 | 国产精品一区在线观看 | 天天看成人免费毛片视频 | 黄色大片大毛片 | 国产成人精品午夜视频' | 国产精品高潮视频 | 在线视频观看国产 | av在线影片 | 一区二区三区日本在线观看 | a黄在线观看 | 欧美视频99| 激情综合网俺也去 | 欧产日产国产精品乱噜噜 | 黄色va视频|