codevs1358棋盤遊戲 狀壓dp

2022-04-06 03:31:46 字數 1140 閱讀 1617

時間限制: 1 s

空間限制: 64000 kb

題目等級 : 大師 master

這個遊戲在乙個有10*10個格仔的棋盤上進行,初始時棋子位於左上角,終點為右下角,棋盤上每個格仔內有乙個0到9的數字,每次棋子可以往右方或下方的相鄰格仔移動,求一條經過數字之和最小且經過0到9的所有數字的合法路徑,輸出其長度。(經過的數字包括左上角和右下角)

輸入描述 input description

輸入包含10行,每行10個數字,以空格隔開,表示棋盤格仔上的權值。資料保證存在合法路徑。

輸出描述 output description

輸出所求路徑的權值和。

樣例輸入 sample input

0 1 2 3 4 5 6 7 8 9

1 1 1 1 1 1 1 1 1 0

2 1 1 1 1 1 1 1 1 0

3 1 1 1 1 1 1 1 1 0

4 1 1 1 1 1 1 1 1 0

5 1 1 1 1 1 1 1 1 0

6 1 1 1 1 1 1 1 1 0

7 1 1 1 1 1 1 1 1 0

8 1 1 1 1 1 1 1 1 0

9 1 1 1 1 1 1 1 1 5

樣例輸出 sample output

50資料範圍及提示 data size & hint

【樣例解釋】

先一直向右走到第一行末尾,再豎直向下走位最優路徑。

/*

三維狀壓dp 轉移的時候分步即可

棋盤只需要放0~9個數字,所以最多只有111111111這樣的的狀態

輸出別忘減一(減一才是111111111)

*/#include

#include

#define maxn 1500

using

namespace

std;

int g[12][12],f[12][12

][maxn],ans;

int min(int x,int y)

intmain()

printf(

"%d\n

",f[10][10][mxx-1

]);

return0;

}

Codevs 1014 棋盤染色

時間限制 1 s 空間限制 128000 kb 題目等級 gold 有乙個5 5的棋盤,上面有一些格仔被染成了黑色,其他的格仔都是白色,你的任務的對棋盤一些格仔進行染色,使得所有的黑色格仔能連成一塊,並且你染色的格仔數目要最少。讀入乙個初始棋盤的狀態,輸出最少需要對多少個格仔進行染色,才能使得所有的...

Codevs 1049 棋盤染色

時間限制 1 s 空間限制 128000 kb 題目等級 gold 題解有乙個5 5的棋盤,上面有一些格仔被染成了黑色,其他的格仔都是白色,你的任務的對棋盤一些格仔進行染色,使得所有的黑色格仔能連成一塊,並且你染色的格仔數目要最少。讀入乙個初始棋盤的狀態,輸出最少需要對多少個格仔進行染色,才能使得所...

Codevs 1049 棋盤染色

時間限制 1 s 空間限制 128000 kb 題目等級 gold 題解有乙個5 5的棋盤,上面有一些格仔被染成了黑色,其他的格仔都是白色,你的任務的對棋盤一些格仔進行染色,使得所有的黑色格仔能連成一塊,並且你染色的格仔數目要最少。讀入乙個初始棋盤的狀態,輸出最少需要對多少個格仔進行染色,才能使得所...