当前位置: 代码迷 >> 综合 >> 2064. 【2016.10.4NOIP普及模拟】Note
  详细解决方案

2064. 【2016.10.4NOIP普及模拟】Note

热度:47   发布时间:2023-10-09 11:54:50.0

题目描述

     数学课上,D突然想到一件很重要的事情要告诉Z,但是她们分别坐在教室的左前方和右后方,这可怎么办呢?D决定传纸条!但是问题又出现了,D要告知Z的是个机密,D不希望有很多人知道。可是由于纸条必须经过其它同学,所以D只好希望知道这个机密的人越少越好。每个同学都有一个好奇程度k(0≤k≤20),好奇程度越大,偷看纸条的可能性也就越大,D希望传递纸条的路径经过的同学的好奇程度和越小越好。我们假定每个同学只会将纸条传递给ta后方或者右方的同学。

输入

第1行,两个整数n,m,表示教室有n行m列。(1≤n,m≤100)
第2行到第n+1行,每行m个整数,表示每个同学的好奇程度。
其中D在第1行第1列,Z在第n行第m列,她们的好奇程度都为0。

输出

共1行,1个整数,表示传递路径的好奇程度.。

样例输入

5 4
0 10 8 3
4 19 16 4
12 9 13 12
13 14 19 15
13 4 18 0

样例输出

52

数据范围限制

题解:
f[i,j]:=f[i,j]+min(f[i-1,j],f[i,j-1])
自行理解······
代码:

vari,j,n,m:longint;a:array[0..150,0..150] of longint;
function min(x,y:longint):longint;
beginif x<y then exit(x);exit(y);
end;
beginassign(input,'note.in');reset(input);assign(output,'note.out');rewrite(output);readln(n,m);for i:=1 to n do for j:=1 to m do read(a[i,j]);for i:=1 to m doa[0,i]:=maxlongint div 3;for i:=1 to n doa[i,0]:=maxlongint div 3;for i:=1 to n dofor j:=1 to m doif (i<>1)or(j<>1) then a[i,j]:=a[i,j]+min(a[i-1,j],a[i,j-1]);writeln(a[n,m]);close(input);close(output);
end.