HDU4870 Rating 高斯消元

2021-10-10 05:34:16 字數 1418 閱讀 7939

有個人有兩個0分賬號,他可以打比賽,他每次用分低的那個賬號打比賽,

有p的概率名列前茅,加50分(上限1000分)

否則掉100分(下限0分)。問有乙個賬號到1000分的期望。

先壓縮一下狀態,把50

5050

看作1

11,把100

10010

0看作2

22,把1000

1000

1000

看作20

2020

那麼就是乙個dp[

20][20

]dp[20][20]

dp[20]

[20]

的方程表示最高分是i

ii,次高分是j

jj的期望步數

d p[

i][j

]=dp

[ii]

[jj]

∗p+d

p[ii

i][j

jj]∗

(1−p

)+

1dp[i][j]=dp[ii][jj]*p+dp[iii][jjj]*(1-p)+1

dp[i][

j]=d

p[ii

][jj

]∗p+

dp[i

ii][

jjj]

∗(1−

p)+1

其中ii,j

jii,jj

ii,j

j是贏得比賽加分後的狀態,iii

,jjj

iii,jjj

iii,jj

j是輸掉比賽…

但是j

jj依賴前面比j

jj小的和後面比j

jj大的

這樣就直接上高斯消元了.

#include

using

namespace std;

int id[

509]

[509];

double mp[

509]

[509

],ans[

509]

,p;void

add(

int i,

int j,

double w)

void

guess

(int n)

//第n列是等式的右邊

} ans[n]

= mp[n]

[n+1];

for(

int i=n-

1;i>=

1;i--)}

intmain()

guess

(num)

;printf

("%.6lf\n"

,ans[1]

);}}

hdu 4870 Rating 高斯消元 遞推

題意 給定乙個概率p,做一道題有p概率成功,1 p 概率失敗。成功分數 50,最高1000 失敗分數 100,最低0分。現有兩個賬號,每次選擇分數低的賬號去做題,問其中乙個賬號達到1000分的期望次數。題解 1 高斯消元法 得分必須是f 0,0 f 0,50 f 50,50 f 950,950 f ...

HDU 4870 Rating 高斯消元法

題意 用兩個賬號去參加一種比賽,初始狀態下兩個賬號都是零分,每次比賽都用分數低的賬號去比賽。有p的概率取勝,相應賬號分數 50分,否則相應賬號分數下降100分,問當有乙個賬號分數達到1000分時參加比賽次數的數學期望是多少。思路 比賽期間以為是一道推公式的題,推了半天沒什麼收穫。賽後想了想。看了解題...

hdu4870 高斯消元

題意 乙個人打比賽 rating 有p的概率 為加50分 有1 p的概率為 x 100分 最大值為 1000 最小值為0 有兩個號 每次拿較小的號來提交 計算最後到達 1000分得期望場數是多少,對每個狀態建立乙個方程然後用高斯消元解決 include include include include...