算法十九

来源:互联网 发布:分水岭算法代码 编辑:程序博客网 时间:2024/05/17 03:38

栅栏周长

算法描述

  • 小明有数块田地,且都是长方形的,长方形之间可以叠加
  • 给出每个长方形的左下角和右上角坐标,计算出围住该田地所需的栅栏总周长
  • 例如,以下田地由长方形(2,2)-(10,5) 和长方形(7,1)-(9,7)组成
    这里写图片描述

参数定义

  • 类名 Fences
  • 方法 fenceLength
  • 输入参数 vector <int>, vector <int>, vector <int>, vector <int>
  • 输出 int
  • 方法声明 int fenceLength(vector <int> x1, vector <int> y1, vector <int> x2, vector <int> y2)

限制条件

  • x1, y1, x2, y2包含[1,50]个元素
  • x1, y1, x2, y2包含相同个数的元素
  • x1, y1, x2, y2中的每个元素在[0, 1000]之间
  • physicalLimit在[1,1000]之间

例子

  • 输入
    • x1:{0,3,5,15}
    • y1:{0,3,7,4}
    • x2:{7,5,10,20}
    • y2:{5,8,9,8}
  • 输出
    • 60

测试实例

  • 实例一

    • 输入

      • {100,80}
      • {200,230}
      • {50,90}
      • {250,205}
    • 输出

      • 200
  • 实例二

    • 输入
      • {10,30,20,10}
      • {10,10,10,40}
      • {20,40,40,30}
      • {40,40,20,30}
    • 输出
      • 160
  • 实例三

    • 输入
      • {976,823,228,463,702,515,690,252,153, 525,260,356,435,369,942, 59,605,173, 178, 70,420, 40,705, 38,841,430,965, 312,680,188,982,160,395,219,340,225}
      • {314,759, 67,232,815,882,211,839, 48, 531,567,803,439,418,968, 74, 88,834, 806,920,920,194,602,436,624,331,314, 68,421,659,653, 99,921,339,865,408}
      • {835,794,980, 90,808,649,198,334,309, 749,187,965,578,199,655,273,503,489, 167,996,212,355, 34,430,749,527,109, 501,380, 36,641,872, 47,157,433, 85}
      • {306,421,283,413,466,747,882,297,790, 576,695,102,655,121, 82,400, 36,236, 143,108,862,400,357,386,790,732, 4, 800,316,166,239,242,121, 57,111, 85}
    • 输出
      • 3854
  • 实例四

    • 输入
      • {1,5}
      • {1,5}
      • {5,10}
      • {5,10}
    • 输出
      • 36
原创粉丝点击