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 #include2view code3 #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 }
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...