#include#include#include
#include
using
namespace
std;
const
int maxn=2500
;int
map[maxn][maxn];
intn,m,x,y;
intdis[maxn][maxn];
struct
node
};priority_queue
q;int xx[5]=;
int yy[5]=;
void
dijkstra()}}
}int
main()
}dijkstra();
for(int i=1;i<=n;i++)
printf("\n
");}
return0;
}
在乙個 n×m
'>n×m
n×m 的,每個格仔都有一種給定顏色的方格矩陣上,有乙隻變色龍在第 x
'>x
x 行第 y
'>y
y 列處,他會在這個方格矩陣上移動。
移動規則如下:
變色龍只能朝相鄰於當前方格的乙個方格(上下左右)上移動一格,且不能移出邊界。
眾所周知,變色龍特異的身體會使自己的身體顏色隨著環境顏色的變化而變化。所以如果移動到的方格和當前方格的顏色不同,變色龍顏色變化次數會+1,否則顏色變化次數不變。
然而變色龍並不希望能移動的步數最小,它希望顏色的變化次數最小。
它告訴你每個格仔的顏色,以及它當前所在的格仔,它希望你告訴它從當前格仔分別到每個格仔的最小顏色變化次數是多少。
第一行包括四個正整數n,m
,x,y
'>n,m,x,y
n,m,x,y,描述矩陣大小以及變色龍起點的座標。
n'>n
n 行每行 m
'>m
m 個非負整數,描述從起點開始出發到每個點的最少顏色變化次數。
input
5 5 3 3output1 1 3 1 1
1 3 3 3 1
3 2 2 2 3
1 4 4 4 6
1 1 1 5 1
2 2 1 2 2時間限制:1s2 1 1 1 2
1 0 0 0 1
2 1 1 1 2
2 2 2 2 3
空間限制:256m
顏色大小在[1,
100]
'>[1,100]
[1,100]中,
測試點編號n,
m'>n,m
n,m範圍
1-31≤n
,m≤5
'>1≤n,m≤5
1≤n,m≤5
4-51≤n
,m≤100
'>1≤n,m≤100
1≤n,m≤100
6-71≤n
,m≤500
'>1≤n,m≤500
1≤n,m≤500
8-101≤
n×m≤
1000000,1
≤n,m
≤2000
'>1≤n×m≤1000000,1≤n,m≤2000
1≤n×m≤1000000,1≤n,m≤2000
51nod 1445 變色DNA(最短路變形)
借鑑了大佬的部落格 一 題目鏈結 題目大意 有乙隻特別的狼,它在每個夜晚會進行變色,研究發現它可以變成n種顏色之一,將這些顏色標號為0,1,2 n 1。研究發現這只狼的基因中存在乙個變色矩陣,記為colormap,如果colormap i j y 則這只狼可以在某乙個夜晚從顏色i變成顏色j 一晚不可...
51Nod 1445 變色DNA 最短路變形)
有乙隻特別的狼,它在每個夜晚會進行變色,研究發現它可以變成n種顏色之一,將這些顏色標號為0,1,2.n 1。研究發現這只狼的基因中存在乙個變色矩陣,記為colormap,如果colormap i j y 則這只狼可以在某乙個夜晚從顏色i變成顏色j 一晚不可以變色多次 如果colormap i j n...
廣搜之倒敘輸出最短路徑
問題描述 給你乙個迷宮,讓你求出從起點到終點的最短路,並且輸出路徑,這個程式是倒這的,如果要正的,記錄一下,再輸出 include include include include using namespace std struct note dian,dian,book 105 105 queue...