我們正在玩猜數遊戲, 遊戲內容如下:
我在 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 函式進行時間上的把控,可以在時間上進行限制...