CODEVS 3049 舞蹈家懷特先生

2022-04-06 01:25:45 字數 739 閱讀 3593

根據題目描述,只有一開始會站在0這個格仔上,以後不會向這個格仔移動

假設f[i][j][k] 為 當前時間i,兩隻腳分別在j,k兩個格仔上的最小體力花費

第i個時間的狀態為f[i][a[i]][k]或者f[i][j][a[i]],即有乙隻腳在指定格仔上,所以分兩種情況列舉

轉移方程

f[i][j][a[i]] = min(f[i][j][a[i]],f[i-1][j][k]+move(a[i],k));

f[i][a[i]][k] = min(f[i][a[i]][k],f[i-1][j][k]+move(a[i],j));(j,k∈(0,4))

#include#include

#include

using

namespace

std;

#define n 10010

inta[n];

int f[n][5][5

];int n,ans = 100000

;int odd(int x)

int move(int x,int

y)int

main()

for (int i=0;i<=4;i++)//

注意從0開始列舉

for (int j=0;j<=4;j++)

ans =min(ans,f[n][i][j]);

printf("%d

",ans);

}

view code

codevs 3049 舞蹈家懷特先生

題目描述 description 懷特先生是乙個大胖子。他很喜歡玩跳舞機 dance dance revolution,ddr 甚至希望有一天人家會腳踏 舞蹈家懷特先生 可惜現在他的動作根本不能稱作是在跳舞,儘管每次他都十分投入的表演。這也難怪,有他這樣的體型,玩跳舞機是相當費勁的。因此,他希望寫乙...

3049 舞蹈家懷特先生

時間限制 1 s 空間限制 64000 kb 題目等級 gold 輸入描述 input description 第一行n,表示有n個時刻 1 n 10000 第二到n 1行,每行乙個數,表示需要踩得版 輸出描述 output description 乙個數,最小消耗體力 樣例輸入 sample in...

題 字首和 NKOJ 3049 三分陣列

nkoj 3049 三分陣列 時間限制 10000 ms 空間限制 65536 kb 問題描述 給出乙個有n 個整數的陣列a 1 a 2 a n 有多少種方法把陣列分成3 個連續的子串行,使得各子串行的元素之和相等。也就是說,有多少個下標對i,j 2 i j n 1 滿足 sum a 1 a i 1...