狀態轉移方程為 dp[i]=min(dp[j]+time, min) for j in range(0,i);表明最短時間是在某個充電站充完電後一口氣衝到i的,內層j迴圈嘗試尋找這樣的j,外部i迴圈不斷生成到充電站i的最短時間。
#include #include #include using namespace std;
int main()
; cin >> n >> c >> t;
cin >> vr >> v1 >> v2;
for(int i = 1; i <= n; i++) cin >> p[i];
p[n+1] = l;
double tr = 1.0 * l / vr,dp[110];
dp[0] = 0;//dp[i]表示到第i個充電站所需最短時間.
for(int i = 1; i <= n + 1; i++)
dp[i] = min;
} if(dp[n+1] > tr) cout << "good job,rabbit!\n";
else cout << "what a pity rabbit!\n";
} return 0;
}
HDU 2059 龜兔賽跑(dp)
description 據說在很久很久以前,可憐的兔子經歷了人生中最大的打擊 賽跑輸給烏龜後,心中鬱悶,發誓要報仇雪恨,於是躲進了杭州下沙某農業園臥薪嘗膽潛心修煉,終於練成了絕技,能夠毫不休息得以恆定的速度 vr m s 一直跑。兔子一直想找機會好好得教訓一下烏龜,以雪前恥。最近正值hdu舉辦50周...
hdu2059 龜兔賽跑(DP)
思路 簡單dp.想清楚題意就可以了 include includeusing namespace std const double inf 1e9 double dp 110 int p 110 int main else if j temp t dp i min dp i dp j temp do...
hdu 2059 龜兔賽跑
題目是動歸,狀態是比較輕鬆能夠分出來的。總的來說就是每乙個加油點是乙個狀態,比如i點就由之前i 1個點確定,從起點到i 1每個點都走到i點一次,求出最小的時間,儲存在i點。需要注意的起點的處理以及終點。題目思路挺清晰的,只要注意下細節,給dp入門做練習還是挺不錯的。include include u...