Data Structures and Algorithms (English) - 7-10 Saving James Bond - Easy Version(25 分)

题目链接:点击打开链接

 

题目大意:在一个 100*100 坐标 以及 中心原点(起点)在(0,0)位置并且半径为 7.5 的圆形上,附近有很多的鳄鱼(可以跳到上面去),问是否可以跳到坐标外(包含边界)。

 

解题思路:第一跳需要特殊处理,接下来就DFS判断该坐标点是否可以跳出成功,或继续DFS下一个可跳的点。

 

AC 代码

#include
#include

#define mem(a,b) memset(a,b,sizeof a)
#define ssclr(ss) ss.clear(), ss.str("")
#define INF 0x3f3f3f3f
#define MOD 1000000007

using namespace std;

typedef long long ll;

struct node
{
    double x,y;
    int vis;
};

node ori;
vector vnd;
int n;
double d;

double fdis(node a, node b)
{
    return sqrt(pow(a.x-b.x,2)+pow(a.y-b.y,2));
}

void dfs(int i)
{
    vnd[i].vis=1;
    if(50-abs(vnd[i].x)<=d || 50-abs(vnd[i].y)<=d)
    {
        puts("Yes");
        exit(0);
    }

    for(int j=0;j vid;
    scanf("%d%lf",&n,&d);
    for(int i=0;i=50)
    {
        puts("Yes");
        return 0;
    }

    for(int i=0;i

 

你可能感兴趣的:(#,ACM,#,PTA,#,DFS,#,技巧题集,#,图)