7-10 Saving James Bond - Easy Version (25 分)

这道题目关键在于理解题意。可以采用两种策略:一是预先计算点与岸的连接,通过DFS判断能否到达;二是在线处理,利用DFS处理湖中心的特殊情况,图的结构可根据需要灵活选择。
摘要由CSDN通过智能技术生成

7-10 Saving James Bond - Easy Version (25 分)

这个题主要是审好题目。
下面有两种方法:

一、先将是不是有边,是否与岸有连接算出来

步骤:
1、读入数据,计算输入点是不是可以到岸。
2、对权值初始化,计算各点之间是不是有线。
3、一次DFS搜索,看看是不是能从中心到岸边。

#include <iostream>
#include <cmath>
using namespace std;
int book[101]; //是否访问
int flag = 0;
int Flee[101]; //是否可以逃跑
const int INFO = 100000;
void DFS(int i,int G[][101],int Nv){
   
    book[i] = 1;
    if(Flee[i] == 1) flag = 1;
    for(int j = 0;j <= Nv;j++){
    //注意一共Nv+1个点
        if(!book[j] && G[i][j] == 1){
   
            DFS(j,G,Nv);
        }
    }
}
int main(){
   
    int x,y;
    int Nv; //顶点数
    int X[101],Y[101]; //顶点坐标
    int Dist; //跳的最远距离
    int G[101][101]; //是否有边
    X[0] = Y[0] = 50;
    scanf("%d%d",&Nv,&Dist);
    for(int i = 1;i <= Nv;i++){
    //读入X,Y并计算能不能从哪里逃出
        scanf("%d%d",
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值