nyoj1204魔法少女 動態規劃

2021-08-17 14:32:39 字數 1013 閱讀 7603

時間限制:1000 ms | 記憶體限制:65535 kb

描述前些時間虛淵玄的鉅獻小圓著實火了一把。 在黑長直(小炎)往上爬樓去對抗魔女之夜時,她遇到了乙個問題想請你幫忙。 因為魔女之夜是懸浮在半空的,所以她必須要爬樓,而那座廢墟一共有n層,而且每層高度不同,這造成小炎爬每層的時間也不同。不過當然,小炎會時間魔法,可以瞬間飛過一層或者兩層[即不耗時]。但每次瞬移的時候她都必須要至少往上再爬一層(在這個當兒補充魔力)才能再次使用瞬移。爬每單位高度需要消耗小炎1秒時間。 消滅魔女之夜是刻不容緩的,所以小炎想找你幫她找出一種最短時間方案能通往樓頂。

輸入本題有多組資料,以檔案輸入結尾結束。

每組資料第一行乙個數字n(1 <= n <= 10000),代表樓層數量。

接下去n行,每行乙個數字h(1 <= h <= 100),代表本層的高度。

輸出對於每組資料,輸出一行,乙個數字s,代表通往樓頂所需的最短時間。

樣例輸入53

5184

樣例輸出

dp[i][0]表示第i層且不可以用魔法時的最短時間

dp[i][1]表示第i層且可以使用魔法時的最短時間

狀態轉移方程:

dp[i][0] = min(dp[i-2][1],dp[i-1][1]);//第i層是用魔法上來的,不費時間

dp[i][1] = min(dp[i-1][0],dp[i-1][1]) + a[i];//第i層是爬上來的,費時

#include

#include

#include

using namespace std;

const

int maxn =

10010

;int f[maxn][2

];int dis[maxn]

;int n;

intmain()

cout <<

min(f[n][0

], f[n][1

])<< endl;

}return0;

}

nyoj 1204 魔法少女

動態規劃 dp i 0 表示i層不用魔法的最少步數 dp i 1 表示i層用魔法的最少步數 dp i 0 min dp i 1 0 dp i 1 1 a i dp i 1 min dp i 1 0 dp i 2 0 dp 0 1 dp 1 1 0 dp 0 0 h 0 dp 1 0 h 1 incl...

nyoj 1204 士兵殺敵(一)

南將軍手下有n個士兵,分別編號1到n,這些士兵的殺敵數都是已知的。小工是南將軍手下的軍師,南將軍現在想知道第m號到第n號士兵的總殺敵數,請你幫助小工來回答南將軍吧。注意,南將軍可能會問很多次問題。輸入只有一組測試資料 第一行是兩個整數n,m,其中n表示士兵的個數 1 輸出對於每乙個詢問,輸出總殺敵數...

魔法少女(動態規劃)

討論區 魔法少女 時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述前些時間虛淵玄的鉅獻小圓著實火了一把。在黑長直 小炎 往上爬樓去對抗魔女之夜時,她遇到了乙個問題想請你幫忙。因為魔女之夜是懸浮在半空的,所以她必須要爬樓,而那座廢墟一共有n層,而且每層高度不同,這造成小炎爬每層的...