點此看題面
大致題意:你要把一把劍從0星公升至7星,有n顆寶石供你選擇,第i顆寶石的價值是c[i],用第i顆寶石將劍從k-1星公升至k星的成功率是prob[k][i],而失敗後會掉lose[k][i],要你求出將劍公升至7星的期望花費。
題解看到這題,自然而然地就會想到用動態規劃來做,而轉移方程其實也很好推:
其中f[i]表示將劍公升至i星的期望花費。f[i]
=min
(f[i]
,f[i-1]
+c[j]+(
1-prob[i]
[j])
*(f[i]
-f[i-
1-lose[i]
[j])
);
就這麼簡單?
b ut
wait
amin
ute.
..
but\ wait\ a\ minute...
butwai
tami
nute
...
在轉移方程中左邊和右邊同時出現了f[i
]f[i]
f[i]
!這就是傳說中的成環dpdp
dp。
那麼成環dpdp
dp該怎麼做呢?
其實在這道題目中有乙個很簡單的方法:移項。沒錯,就是我們初一上學期就接觸過的移項。
通過移項,原轉移方程就變成了
這樣不就直接水過了嗎!(順便吐槽一下nf[i]
=min
(f[i]
,(f[i-1]
+c[j]-(
1-prob[i]
[j])
*f[i-
1-lose[i]
[j]]
)/prob[i]
[j])
;
≤100
n≤100
n≤10
0這樣的資料範圍真是太水了)
**
#include
#define ll long long
#define min(x,y) ((x)<(y)?(x):(y))
#define n 100
using
namespace std;
int n,c[n+5]
,lose[10]
[n+5];
double prob[10]
[n+5
],f[10]
;int
read()
intmain
(register
int i,
register
int j,
bool flag,
bool ff)
51nod 1705七星劍 期望dp
分析 一開始覺得可以正推,但是怎麼都是wa。不得已看正解,高斯消元?我當時就覺得肯定可以線性做,然後真讓我找到了。f i 表示有i顆星的期望花費 f i minf i 1 cj 1 pi,j f i f gi,j 這個dp比較顯然了,直接做,時間複雜度n 7.include include incl...
有什麼作用 粉水晶七星陣有什麼作用
粉水晶一直是轉運文玩水晶中的佼佼者,除了一些粉水晶掛件還有一些擺件,比如粉水晶球,粉文玩水晶七星陣。這些擺件造型不一但功能相差不大,在此我們介紹下不太常見的粉水晶七星陣及其作用。粉水晶七星陣有什麼作用?粉水晶七星陣其實就是七科小的粉水晶的擺件,簡單大方,美觀,可以當做辦公室或者臥室的裝飾品,而更重要...
sae php7 mysql 第七星塵的獨立部落格
原文分割線 here comes my removemysql.通過介面實現跨資料庫訪問。removemysql只適合小型開發,資料量大的時候,會嚴重受網路環境制約,可能會延遲很厲害。所以建議做小應用,不宜用於大應用環境。大應用建議自己寫個完善的rest server,或者換個支援傳統方式訪問資料庫...