pascal 要标程小明喜欢滑雪,因为滑雪的确很刺激,可是为了获得速度,滑的区域必须向下倾斜,当小明滑到坡底,不得不再次
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/11 04:24:33
pascal 要标程
小明喜欢滑雪,因为滑雪的确很刺激,可是为了获得速度,滑的区域必须向下倾斜,当小明滑到坡底,不得不再次走上坡或等着直升机来载他,小明想知道在一个区域中最长的滑坡.滑坡的长度由滑过点的个数来计算,区域由一个二维数组给出,数组的每个数字代表点的高度.
下面是一个例子:
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小,在上面的例子中,一条可行的滑坡为25-24-17-16-1(从25开始到1结束),当然25-24-23-...-3-2-1更长,事实上这是最长的一条.
小明喜欢滑雪,因为滑雪的确很刺激,可是为了获得速度,滑的区域必须向下倾斜,当小明滑到坡底,不得不再次走上坡或等着直升机来载他,小明想知道在一个区域中最长的滑坡.滑坡的长度由滑过点的个数来计算,区域由一个二维数组给出,数组的每个数字代表点的高度.
下面是一个例子:
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小,在上面的例子中,一条可行的滑坡为25-24-17-16-1(从25开始到1结束),当然25-24-23-...-3-2-1更长,事实上这是最长的一条.
记忆化搜索,附解释,程序较短
const
dx:array[1..4] of integer=(1,-1,0,0);
dy:array[1..4] of integer=(0,0,1,-1); //这个不用我说了吧,就是4个方向
var
a,f:array[1..100,1..100] of longint;
r,c,i,j:integer;
ans:longint;
procedure work(x,y:integer);
var
i:integer;
begin
for i:=1 to 4 do
if (x+dx[i]>0) and (x+dx[i]0) and (y+dy[i]a[x,y]) and (f[x+dx[i],y+dy[i]]=1) then //这里比较恐怖,主要是判是否越界
work(x+dx[i],y+dy[i]);
if (a[x+dx[i],y+dy[i]]>a[x,y]) and (f[x,y]ans then
ans:=f[i,j];
end;
writeln(ans);
end.
这是自己编的,然后先看一下注释,运行的话把注释删点吧,就是划//以后的东西.
顺便附上在Tyvj(就是那个Vijos的替代网站,www.tyvj.cn,有兴趣你可以上去做做题目,如果已经知道了,那就当我废话吧~~~~)上的测试结果.
VijosNT Mini 2.0.5.6
#01: Accepted (0ms, 712KB)
#02: Accepted (0ms, 712KB)
#03: Accepted (0ms, 712KB)
#04: Accepted (0ms, 712KB)
#05: Accepted (0ms, 712KB)
#06: Accepted (0ms, 712KB)
#07: Accepted (0ms, 712KB)
#08: Accepted (0ms, 712KB)
#09: Accepted (43ms, 712KB)
#10: Accepted (43ms, 712KB)
Accepted / 100 / 87ms / 712KB
非常荣幸能够解答
const
dx:array[1..4] of integer=(1,-1,0,0);
dy:array[1..4] of integer=(0,0,1,-1); //这个不用我说了吧,就是4个方向
var
a,f:array[1..100,1..100] of longint;
r,c,i,j:integer;
ans:longint;
procedure work(x,y:integer);
var
i:integer;
begin
for i:=1 to 4 do
if (x+dx[i]>0) and (x+dx[i]0) and (y+dy[i]a[x,y]) and (f[x+dx[i],y+dy[i]]=1) then //这里比较恐怖,主要是判是否越界
work(x+dx[i],y+dy[i]);
if (a[x+dx[i],y+dy[i]]>a[x,y]) and (f[x,y]ans then
ans:=f[i,j];
end;
writeln(ans);
end.
这是自己编的,然后先看一下注释,运行的话把注释删点吧,就是划//以后的东西.
顺便附上在Tyvj(就是那个Vijos的替代网站,www.tyvj.cn,有兴趣你可以上去做做题目,如果已经知道了,那就当我废话吧~~~~)上的测试结果.
VijosNT Mini 2.0.5.6
#01: Accepted (0ms, 712KB)
#02: Accepted (0ms, 712KB)
#03: Accepted (0ms, 712KB)
#04: Accepted (0ms, 712KB)
#05: Accepted (0ms, 712KB)
#06: Accepted (0ms, 712KB)
#07: Accepted (0ms, 712KB)
#08: Accepted (0ms, 712KB)
#09: Accepted (43ms, 712KB)
#10: Accepted (43ms, 712KB)
Accepted / 100 / 87ms / 712KB
非常荣幸能够解答
pascal 要标程小明喜欢滑雪,因为滑雪的确很刺激,可是为了获得速度,滑的区域必须向下倾斜,当小明滑到坡底,不得不再次
pascal 小明喜欢滑雪,因为滑雪的确很刺激,可是为了获得速度,滑的区域必须向下倾斜,当小明滑到坡底,不得不再次走上坡
摩尔在滑雪众如何提高自己的滑雪速度
滑雪新手求助.问下滑雪高手,你们认为滑雪注意事项有哪一些?滑的速度很快,有点害怕,要做什么防护么
滑雪比滑冰更刺激的英语怎么写
倾斜雪道的长25米,顶端为15米,下端经过一小段圆弧过渡后与很长的水平雪道相接,一滑雪运动员在倾斜雪道的顶端以水平速度v
滑雪运动员在倾斜的顶端以水平速度V=10米每秒飞出,再落到倾斜雪道上,坡度为37度
滑雪运动是一项既浪漫又刺激的体育活动.滑雪是人们手持滑雪杖.脚踏滑雪板在雪面撒谎那个身轻如燕的滑行
滑雪是一项既浪漫又刺激的体育运动.再一次滑雪运动中,运动员从山坡上自由滑下,
怎么滑雪的作文
滑雪的作文
滑雪的英文怎么说