PTA 拯救007 dfs java

这篇博客介绍了如何使用深度优先搜索(DFS)解决PTA中的经典问题‘拯救007’。作者参考了csdn上的一篇详细文章,并结合浙江大学陈越老师的图论课程,阐述了从可到达的点开始进行DFS搜索的策略,避免重复访问已尝试过的节点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考博客,这个博客思路真的很棒很棒,这道题目也是一道练习dfs很经典的题目
https://blog.youkuaiyun.com/Commatc/article/details/88694254
在听mooc浙江大学陈越老师讲图的dfs时,老师就曾提到过这个问题拯救007

思路:从第一次跳跃可以到达的点为起点,dfs搜索路径,访问过的结点不再访问,
因为之前到达这个结点没有成功,现在也不会成功。

package pat图论;
//参考博客,这个博客思路真的很棒很棒,这道题目也是一道练习dfs很经典的题目
//https://blog.youkuaiyun.com/Commatc/article/details/88694254
//在听mooc浙江大学陈越老师讲图的dfs时,老师就曾提到过这个问题拯救007

//思路:从第一次跳跃可以到达的点为起点,dfs搜索路径,访问过的结点不再访问,
//因为之前到达这个结点没有成功,现在也不会成功。
import java.util.Scanner;

public class Main42 {
	static int n;
	static int d;
	static dian[]di;
	static boolean[]mark;
    public static boolean success(int i) {
    	return di[i].x-d<=-50||di[i].x+d>=50||di[i].y+d>=50||di[i].y-d<=-50;
    }
    public static boolean jump(int i,int j) {
    	return Math.sqrt(Math.pow(di[i].x-di[j].x,2)+Math.pow(di[i].y-di[j].y,2))<=d;
    }
    public static boolean dfs(int i) {
    	mark[i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值