猜數遊戲 II LintCode

2021-08-18 02:12:21 字數 1154 閱讀 9870

我們正在玩猜數遊戲, 遊戲內容如下:

我在 1到 n 的範圍內選擇乙個數作為待猜的數, 你需要來猜這個數,

每次你猜錯的時候, 我會告訴你我選擇的這個數是比你說的數要高還是低,

但是, 當你猜這個數為 x 並且猜錯的時候你需要支付 $x. 當你猜到我選擇的數時, 你將贏得這場遊戲

樣例 給出 n = 10, 我選擇待猜數為 8

第一輪: 你猜測為 5, 我告訴你待猜的值要更大一些. 你需要支付 5刀

第二輪: 你猜測為 7, 我告訴你待猜的值要更大一些. 你需要支付 7刀

第三輪: 你猜測為 9, 我告訴你待猜的值要更小一些. 你需要支付 9刀

遊戲結束. 8 是我選擇的待猜數.

你最終需要支付 5 + 7 + 9 = 21

給乙個具體的大於等於 1 的數 n, 計算你需要多少錢才可以保證贏.

所以當 n = 10 時, 返回 16.

思路 利用動態規劃,dp[i][j]表示 i 到 j 範圍的猜數遊戲保證贏至少需要的錢數。設定步長path,從1-2,2-3開始計算,直到計算到1-n。動態轉換方程為: dp

[i][

j]=m

in(d

p[i]

[k−1

]+k+

dp[k

+1][

j]),

i<=

k<=

j dp[

i][j

]=mi

n(dp

[i][

k−1]

+k+d

p[k+

1][j

]),i

<=

k<=

j結果取dp[1][n]

#ifndef c666_h

#define c666_h

#include

#include

using

namespace

std;

class solution

dp[i][i + path] = res;}}

return dp[1][n];

}int minval(int a, int b)

int maxval(int a, int b)

};#endif

1995猜數遊戲

猜數遊戲 time limit 1 seconds memory limit 32768 k total submit 70 accepted 11 description 我們經常看到這樣的遊戲,機器隨機產生乙個4個不同的數字,然後你輸入4個不同數字,然後機器自動判斷你輸入的4個數字有多少個數字猜...

簡單猜數遊戲

2.計算機隨機生成乙個1024之內的整數,請你猜這個數,如果猜錯了,計算機會提示你大了還是小了,你一共只有十次機會,如果十次沒猜到 則提示 失敗 如果十次之內猜對則提示 你真聰明 c using system using system.collections.generic using system...

猜數遊戲 plus

猜數遊戲大家應該都不陌生,隨機產生乙個數,然後讓玩家去猜這個數的大小,但是傳統的猜數遊戲只是單純的猜數,沒有時間或者次數的限制,導致遊戲的豐富度不高 所以在傳統猜數遊戲的基礎上可以進行功能的增添,給予玩家更好的遊戲體驗 我們可以利用gettickcount 函式進行時間上的把控,可以在時間上進行限制...