1101上午考試T4

2022-05-07 17:30:10 字數 1388 閱讀 1725

​ 題目大意:

​ 有\(n\)輪比賽,最終成績由這 n 輪比賽中贏的輪數決定。如果在第 i 輪比賽賽選擇積極應戰,並且前 i-1 輪比賽中取得了 j 勝的話,那麼第 i 輪比賽的勝率概率為\(p[i][j]\),這裡我們保證了對於同乙個 i,\(p[i][j]\) 關於 j 的上公升保持單調不上公升(也就是說 \(p[i][j] >= p[i][j+1]\))。可以在某些輪比賽採取第二種策略,故意求敗,也就是以 100% 的概率輸掉該輪比賽,從而使之後的勝率可能更高, 現在已知看到了整個 p 陣列,求乙個最優的策略,使得期望贏的輪數最大。

​ 期望概率dp.

​ 期望dp不好搞,其實可以用概率dp來寫.

​ 最優情況下\(f[i][j]\)表示前\(i\)輪贏了\(j\)輪的概率是多少,轉移方程就是:\(f[i][j] = f[i - 1][j - 1] * p[i][j - 1] + f[i - 1][j] * (1 - p[i][j])\).

​ 然後統計答案就是:\(f[n][j] * j\).

​ 至於為啥沒有考慮第二種策略就是最優的....我也不知道

11.5更新:

好了現在我知道為啥沒有第二種策略是最優的, 先設幾個東西, \(p1\)表示p[1][0], \(p2\)表示p[2][0], \(p3\)表示p[2][1].

我們強制使用策略二, 可以獲勝的輪數的期望是 : \(p2 * 1 = p2\);

我們不強制使用策略二, 可以獲勝的輪數的期望是 : \(p1 * p3 * 2 + (1 - p1) * p2 * 1 + p1 * (1 - p3) * 1 = p1 * p3 + p1 + p2 - p1 * p2 = p1 * p3 + p2 + p1(1 - p2)\);

然後我們讓兩個式子都減去\(p2\), 那麼一式變成了0, 二式變成了\(p1 * p3 + p1 * (1 - p2)\),顯然二式大於零.

然後模擬到多個應該也是一樣的, 所以不使用策略二肯定更優.

這道題當然也可以用期望dp來寫:

設\(f[i][j]\) 表示已經贏了\(j\)場, 從\(i + 1\)到\(n\) 的期望贏得場數, 可以得到dp轉移方程:

\(f[i][j] = max(f[i + 1][j], (f[i + 1][j + 1] + 1) * p[i][j] + f[i + 1][j] * (1 - p[i][j])\);

前半部分表示使用策略二, 後半部分表示第\(i\)場贏 + 第\(i\)場輸.

這個是概率dp的方程:

#include using namespace std;

const int n = 1005;

int n;

double ans, p[n][n], f[n][n];

int main()

概率一般正著求, 期望一般倒著求.

題解 2020 10 24 考試 T4 模板

題目傳送門 有乙個 n 個點組成的樹,有 m 次操作,每次將 1 to x 的路徑上每個點都加入乙個顏色為 c 的小球。但是每個點都有大小限制,即小球個數超過一定量之後就不能再加入了。有 q 次查詢,問操作完了之後每個點有多少種不同顏色的小球。sto llsw yyds orz 以下皆為 llsw ...

T4模板語法

t4,即4個t開頭的英文本母組合 text template transformation toolkit。t4文字模板,即一種自定義規則的 生成器。根據業務模型可生成任何形式的文字檔案或供程式呼叫的字串。模型以適合於應用程式域的形式包含資訊,並且可以在應用程式的生存期更改 template deb...

T4模板 入門

t4模板作為vs自帶的一套 生成器,功能有多強大我也不知道,最近查詢了一些資料學習一下,做個筆記 更詳細的資料參見 msdn 你必須懂的t4模板 深入淺出 t4模板是沒有顏色高亮提示的,我們可以安裝vs支援的外掛程式,我安裝的是 t4 editor,當然還有其他比如 visual t4等,t4模板分...