SSL 1580 澤澤在埃及

2022-09-18 01:27:10 字數 4745 閱讀 1318

description

澤澤已52:0的比分輸了球,被足球流氓打了一頓,扔進了窨井裡……

出來的時候,澤澤已經在埃及了。

滾滾的黃沙在周圍飛舞,沒有一樣生物在這裡棲息。澤澤不想就掛在這裡。忽然,澤澤被風沙遮住的眼睛瞥見了一座金字塔。這是一座很雄偉的金字塔,而且重要的是,金字塔頂端,竟然有一架直公升飛機!

澤澤就像抓到了救命稻草,用他在長城上999999999999999999 mod 2倍的速度瘋狂向金字塔奔跑。來到金字塔下,風把他刮進了金字塔。

門「轟隆隆」地關上了。澤澤看見裡面陳列著很多珍品,但依然存在著暗器。但是還好,有個盜墓的把木乃伊給挖走了,所以在金字塔裡沒有跳動的殭屍。澤澤需要做的就是盡快跑想金字塔的頂端。

現在澤澤在金字塔最底層的左上角。他可以向前後左右或走到樓上去,但必須花費一點時間。一旦走到樓上後樓下的門就會關閉,澤澤不能回下去了,因此澤澤格外小心。幸運的是,金字塔很巧妙。在金字塔裡有一些暗道,可以從某點直接通向某點,而不用再走最平常的路線,也是只能上不能下。澤澤知道這些暗道在**,而且知道走到每個地方的所花費的時間。

現在你要做的就是算出澤澤走到金字塔頂端所花最少的時間。

注意:

第n層第i行第j列我們表示成n,i,j。當n>=2時,n,i,j可以由4個位置走來(不包括暗道)。如3,1,1可以從2,1,1或2,1,2或2,2,1或2,2,2走來。

如圖所示,一座大小為3的金字塔的俯檢視就是這個樣子的。從a(2,1,1)、b(2,1,2)、c(2,2,1)、d(2,2,2)都可以走到e(3,1,1)。其他位置依次類推。

input

第1行為2個整數n,m。n表示金字塔的底部邊長以及高,m表示有多少暗道。

接下來有n張正方形的圖,每張圖用乙個回車隔開,表示從最底層到最高層的每個位置所花費的時間。保證上面的圖的邊長比下面圖的多1。(如樣例,這座大小為4的金字塔第1層是4*4的,第2層是3*3,第3層是2*2,第4層是1*1。)

接下來的m行,每行7個整數ai1,bi1,ci1,ai2,bi2,ci2,pi。表示 第ai1層的第bi1行第ci1列 到 第ai2層的第bi2行第ci2列 之間有一條時間為pi的暗道。保證ai1

output

乙個整數,即澤澤走到金字塔頂端的最短時間。

sample input

4 24 1 5 2

4 3 4 7

1 9 2 8

0 3 5 1

2 8 5

9 3 9

1 1 8

7 4

5 21 1 2 2 3 1 1

1 3 2 2 2 1 7

sample output

52 題目提示

流程:

1 澤澤一開始在1,1,1的位置,總時間為0+4=4。

2 從1,1,1走到1,1,2,總時間為4+1=5。

3 走暗道到了2,3,1,總時間為5+1+1=7。

4 從2,3,1走到2,3,2,總時間為7+1=8。

5 再上樓到了3,2,2,總時間為8+2=10。

6 再上樓到了4,1,1,總時間為10+42=52。

hint

資料範圍

對於50%的資料,n<=5

對於100%的資料,n<=100,m<=50,每格的暗道總數不超過10個。

這題就是記憶化搜尋+dp就可以acc,聽說有大犇用水法水過。

設f[i,j,k]為到第i層第j行第k列的最少時間

定乙個過程為,向四個方向判斷,這個點有沒有出界,再將f[i,j,k]=min(f[i,j-1,k],f[i,j,k-1],f[i,j+1,k],f[i,j,k+1])

現將第n層(也就最下面一層),dp出來,f[n,j,k]:=max(f[n,j,k]+min(f[n,j,k-1],f[n,j,k-1])+a[j,k])

然後就從(n,j,k)搜尋到f[n,j,k]的最小時間。

在乙個迴圈判斷從這層的下一層到這層,所需的最小時間。最後輸出f[1,1,1]

**如下:

type

arr=record

a,b,c,p:longint;

end;

var i,j,k,a1,a2,b1,b2,c1,c2,t,time,n,m:longint;

l:array[0..100,0..100,0..100,0..10]of arr;

a,f,s:array[0..100,0..100,0..100]of longint;

procedure

init;

begin

readln(n,m);

for i:=n downto1do

for j:=1

to i do

begin

for k:=1

to i do

read(a[i,j,k]);

readln;

end;

for i:=1

to m do

begin

readln(a1,b1,c1,a2,b2,c2,time);

a1:=n+1-a1;

a2:=n+1-a2;

inc(s[a2,b2,c2]);

l[a2,b2,c2,s[a2,b2,c2]].a:=a1;

l[a2,b2,c2,s[a2,b2,c2]].b:=b1;

l[a2,b2,c2,s[a2,b2,c2]].c:=c1;

l[a2,b2,c2,s[a2,b2,c2]].p:=time;

end;

for i:=2

to n do

for j:=0

to i+1

dofor k:=0

to i+1

do f[i,j,k]:=99999999;

end;

procedure

sos(i,j,k:longint);

begin

if f[i,j,k-1]<99999999

then

if f[i,j,k-1]>f[i,j,k]+a[i,j,k-1] then

begin

f[i,j,k-1]:=f[i,j,k]+a[i,j,k-1];

sos(i,j,k-1);

end;

if f[i,j-1,k]<99999999

then

if f[i,j-1,k]>f[i,j,k]+a[i,j-1,k] then

begin

f[i,j-1,k]:=f[i,j,k]+a[i,j-1,k];

sos(i,j-1,k);

end;

if f[i,j,k+1]<99999999

then

if f[i,j,k+1]>f[i,j,k]+a[i,j,k+1] then

begin

f[i,j,k+1]:=f[i,j,k]+a[i,j,k+1];

sos(i,j,k+1);

end;

if f[i,j+1,k]<99999999

then

if f[i,j+1,k]>f[i,j,k]+a[i,j+1,k] then

begin

f[i,j+1,k]:=f[i,j,k]+a[i,j+1,k];

sos(i,j+1,k);

end;

end;

function

min(a,b:longint):longint;

begin

if a>b then

exit(b) else

exit(a);

end;

procedure

main;

begin

f[n,1,1]:=a[n,1,1];

for j:=1

to n do

for k:=1

to n do

f[n,j,k]:=min(f[n,j,k],min(f[n,j-1,k],f[n,j,k-1])+a[n,j,k]);

sos(n,j,k);

for i:=n-1

downto1do

begin

for j:=1

to i do

for k:=1

to i do

begin

a1:=min(f[i+1,j,k],f[i+1,j,k+1]);

a2:=min(f[i+1,j+1,k],f[i+1,j+1,k+1]);

f[i,j,k]:=min(a1,a2)+a[i,j,k];

for t:=1

to s[i,j,k] do

begin

a1:=l[i,j,k,t].a;

b1:=l[i,j,k,t].b;

c1:=l[i,j,k,t].c;

time:=l[i,j,k,t].p;

if f[a1,b1,c1]+time+a[i,j,k]then

f[i,j,k]:=f[a1,b1,c1]+time+a[i,j,k];

end;

end;

for j:=1

to i do

for k:=1

to i do

sos(i,j,k);

end;

end;

begin

init;

main;

writeln(f[1,1,1]);

end.

SSL 1580 澤澤在埃及

description 澤澤已52 0的比分輸了球,被足球流氓打了一頓,扔進了窨井裡 出來的時候,澤澤已經在埃及了。滾滾的黃沙在周圍飛舞,沒有一樣生物在這裡棲息。澤澤不想就掛在這裡。忽然,澤澤被風沙遮住的眼睛瞥見了一座金字塔。這是一座很雄偉的金字塔,而且重要的是,金字塔頂端,竟然有一架直公升飛機!澤...

SSL 1579 澤澤在巴西

description 澤澤幫助了英國某街道儘量減少酸雨的傷害,街道辦主任非常感激他,就把他領到一扇門前,告訴他這扇門能通往好地方,具體好到什麼程度要看澤澤人品。澤澤毫不猶豫地走了進去 澤澤來到了足球王國 巴西。這可是個好地方,澤澤看來人品攢了不少了。這裡大街小巷都在踢足球,其樂無窮。突然,澤澤被乙...

SSL1579 澤澤在巴西 spfa

澤澤在巴西 time limit 10000ms memory limit 65536k total submit 81 accepted 29 case time limit 1000ms description 澤澤幫助了英國某街道儘量減少酸雨的傷害,街道辦主任非常感激他,就把他領到一扇門前,告...