BZOJ2464 中山市選 2009 小明的遊戲

2022-05-12 01:26:40 字數 2431 閱讀 1843

time limit: 10 sec  memory limit: 128 mb

submit: 280  solved: 124

[submit][status]

小明最近喜歡玩乙個遊戲。給定乙個n *

m的棋盤,上面有兩種格仔#和@。遊戲的規則很簡單:給定乙個起始位置和乙個目標位置,小明每一步能向上,下,左,右四個方向移動一格。如果移動到同一類

型的格仔,則費用是0,否則費用是1。請程式設計計算從起始位置移動到目標位置的最小花費。

輸入檔案有多組資料。

輸入第一行包含兩個整數n,m,分別表示棋盤的行數和列數。

輸入接下來的n行,每一行有m個格仔(使用#或者@表示)。

輸入接下來一行有四個整數x1, y1, x2, y2,分別為起始位置和目標位置。

當輸入n,m均為0時,表示輸入結束。

對於每組資料,輸出從起始位置到目標位置的最小花費。每一組資料獨佔一行。

2 2@#

#@0 0 1 1

2 2@@

@#0 1 1 0

0 02

0對於100%的資料滿足:1 < = n, m <= 500。

題解:對於這種題目我只能說呵呵。。。

裸最短路吧,連spfa都不卡。。。

**:

1 #include2

3 #include4

5 #include6

7 #include8

9 #include10

11 #include12

13 #include14

15 #include16

17 #include

1819 #include20

21 #include

2223

#define inf 1000000000

2425

#define maxn 1000000+5

2627

#define maxm 1000000

2829

#define eps 1e-10

3031

#define ll long long

3233

#define pa pair34

35#define for0(i,n) for(int i=0;i<=(n);i++)

3637

#define for1(i,n) for(int i=1;i<=(n);i++)

3839

#define for2(i,x,y) for(int i=(x);i<=(y);i++)

4041

#define for3(i,x,y) for(int i=(x);i>=(y);i--)

4243

#define mod 1000000007

44#define num(i,j) ((i-1)*m+j)

4546

using

namespace

std;

4748 inline int

read()

4950

5556

while(ch>='

0'&&ch<='9')

5758

return x*f;

5960}61

struct edgee[2*maxn];

6263

intn,m,k,s,t,a[maxn],tot,d[maxn],head[maxn];

6465

bool

v[maxn];

66 queueq;

67char

st[maxn];

68const

int dx[4]=;

69const

int dy[4]=;

7071

void insert(int x,int y,int

z)72

7378

79int spfa(int s,int

t)80

81104

105}

106107

}108

return

d[t];

109110

}111

112int

main()

113114

130for1(i,n)

131for1(j,m)

132 for0(k,3

)133

138int x1=read()+1,y1=read()+1,x2=read()+1,y2=read()+1

;139 printf("

%d\n

",spfa(num(x1,y1),num(x2,y2)));

140}

141142

return0;

143144 }

view code

BZOJ2464 中山市選 2009 小明的遊戲

給出乙個n m的字元矩陣,給出起點和終點,每次移動只能上下左右移動,如果走到不同的字元需要1的花費,同種字元不需要花費 求出從起點到終點的最少花費 最短路水題 日常刷水,有益身心健康 include include include include include using namespace st...

bzoj2466 中山市選2009 樹

同上一題。應該可以樹形dp,然而我不會。include include include include includeusing namespace std define rep i,s,t for int i s i t i define dwn i,s,t for int i s i t i d...

bzoj2466 中山市選2009 樹

題目描述 bz題解 1 高消。直接列異或方程組高消即可。include include include include using namespace std const int n 105 template inline void read t x while ch 0 ch 9 x f c in...