zoukankan      html  css  js  c++  java
  • pta 编程题16 Saving James Bond

    其它pta数据结构编程题请参见:pta

    题目

    主要用到了深度优先搜索。

     1 #include <iostream>
     2 using namespace std;
     3 
     4 struct Vertex
     5 {
     6     int x;
     7     int y;
     8     bool marked;
     9 }G[100];
    10 
    11 int N; //总鳄鱼数
    12 int D; //可以跳的距离
    13 bool dfs(Vertex& v);
    14 bool firstJump(Vertex v);
    15 bool jump(Vertex v1, Vertex v2);
    16 bool success(Vertex v); //可以跳到岸上
    17 
    18 int main()
    19 {
    20     int i;
    21     cin >> N >> D;
    22     for (i = 0; i < N; i++)
    23         cin >> G[i].x >> G[i].y;
    24 
    25     bool canEscape = false;
    26     for (i = 0; i < N; i++)
    27     {
    28         if (!G[i].marked && firstJump(G[i]))
    29             canEscape = dfs(G[i]);
    30         if (canEscape) break;
    31     }
    32     if (canEscape) cout << "Yes";
    33     else cout << "No";
    34     return 0;
    35 }
    36 
    37 bool firstJump(Vertex v)
    38 {
    39     return v.x * v.x + v.y * v.y <= (15 + D) * (15 + D);
    40 }
    41 
    42 bool dfs(Vertex& v)
    43 {
    44     bool canEscape = false;
    45     v.marked = true;
    46     if (success(v)) return true;
    47     for (int i = 0; i < N; i++)
    48     {
    49         if (!G[i].marked && jump(v, G[i]))
    50             canEscape = dfs(G[i]);
    51         if (canEscape) break;
    52     }
    53     return canEscape;
    54 }
    55 
    56 bool success(Vertex v)
    57 {
    58     if (v.x <= D - 50 || v.x >= 50 - D || v.y <= D - 50 || v.y >= 50 - D)
    59         return true;
    60     return false;
    61 }
    62 
    63 bool jump(Vertex v1, Vertex v2)
    64 {
    65     return (v1.x - v2.x) * (v1.x - v2.x) + (v1.y - v2.y) * (v1.y - v2.y) <= D*D;
    66 }
  • 相关阅读:
    Laravel Pipeline原理及使用
    Laravel ServiceProvider注册过程及简单使用
    Laravel Facade原理及使用
    laravel kernel解析过程
    laravel Application实例化后两个方法
    laravel核心Ioc容器
    composer(三) 基本命令
    composer分析(二)结合PSR-4
    composer源码简单分析(一)
    舍得 (学习html几天)
  • 原文地址:https://www.cnblogs.com/lxc1910/p/8969105.html
Copyright © 2011-2022 走看看