永发信息网

pascal 抓住那头奶牛(广度搜索)求源程序和讲解

答案:1  悬赏:0  手机版
解决时间 2021-11-26 04:25
pascal 抓住那头奶牛(广度搜索)求源程序和讲解
最佳答案
program catchcow;
var
a,d:array[0..200000]of longint;
st,en,i,next,t,w:longint;
find:boolean;
function direct(x,y:longint):longint;
begin
if y=1
then
direct:=x+1
else if y=2
then
direct:=x-1
else
direct:=x*2;
end;
begin
assign(input,'catchcow.in');
assign(output,'catchcow.out');
reset(input);
rewrite(output);
readln(st,en);
for i:=0 to 200000 do
a[i]:=-1;
t:=1;
w:=1;
d[1]:=st;
find:=false;
a[st]:=0;
if st=en
then
begin
find:=true;
writeln(0);
end;
while not find do
begin
for i:=1 to 3 do
begin
next:=direct(d[t],i);
if (next>=0)and(next<=200000)and(a[next]=-1)
then
begin
a[next]:=a[d[t]]+1;
if next=en
then
begin
writeln(a[next]);
find:=true;
end;
inc(w);
d[w]:=next;
end;
end;
inc(t);
end;
close(input);
close(output);
end.

其实就是用广度优先搜索,因为坐标最大100W,在内存承受的范围之内,时间也是蛮快的。
注意要判重,一个点没必要搜两次
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
o一( 5)一(一3.6)十(-4)=
这2天搜狐汽车网站怎么打不开?
(1)一袋大米重48千克,如果用12分之7,还剩下
镇魔之剑灵器洗练步骤介绍
盐亭哪有出租房
关于spring roo 框架的JPA 数据库问题~~~ 我
怎么重启系统,重启不好使
台电p88无法连接电脑
福州市晋安区老年人体育协会地址在哪,我要去
当灿烂的太阳跳出东海的碧波。 用了什么修词
双氧奶和双氧油有什么区别
我老公39岁,左眉毛有两根很长的有事吗
松鼠最喜欢什么颜色?喜欢晒太阳吗?会不会记
女朋友打工回来。短裙都没脱。把我要了。还抱
醉酒达到300多怎么定性?
推荐资讯
支付宝和账付通有啥区别
学个手艺好难,天天跟着师傅帮他赚钱,还没学
媳妇遇事就臭脸,心里经不起一点事情,一有事
小岛coffee地址有知道的么?有点事想过去!
九天揽月五洋捉鳖指的是哪个潜水器
LED灯箱有一个字的一半不亮,怎么办?
走,走,一起走这是什么歌的歌词
江西赣州银座村镇银行便民服务中心地址在什么
13款雪铁龙c5尊享版都有哪些功能
华通交易开户邀请码会获得新人的利益吗
项城一高九校联考成绩
820-5.78x99+5.98用简便方法
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?