• 最小矩形--全国模拟(二)


    [编程题] 最小的矩形
    时间限制:1秒
    空间限制:32768K
    牛牛在二维坐标系中画了N个点,且都是整点。现在牛牛想画出一个矩形,使得这N个点都在矩形内或者在矩形上。
    矩形的边均平行于坐标轴。牛牛希望矩形的面积最小。请你帮助牛牛计算下最小矩形的面积。 
    输入描述:
    首先输入一个正整数N表示点的个数(2 <= N <= 50)
      接下来N行每行两个整数x, y,表示该点的坐标。绝对值均小于等于100.
     
     
    输出描述:
    一个整数表示最小矩形的面积。
     
    输入例子:
    2 0 1 1 0
     
    输出例子:
    1
     
    解题思路:定义结构体Point存储每个点的坐标,然后遍历所有点,求出所有点中min_x、min_y、max_x、max_y,因此面积就为(max_x-min_x)*(max_y-min_y)
     1 #include <iostream>
     2 using namespace std;
     3 struct Point
     4 {
     5     int x;
     6     int y;
     7 };
     8 int getMin(int a,int b)
     9 {
    10    return (b<a)?b:a;
    11 }
    12 int getMax(int a,int b)
    13 {
    14     return (b>a)?b:a;
    15 }
    16 int main()
    17 {
    18     int n;
    19     while(cin>>n)
    20     {
    21         Point p[n];
    22         int area;
    23         for(int i=0;i<n;i++)
    24         {
    25             cin>>p[i].x>>p[i].y;
    26         }
    27         int min_x = p[0].x;
    28         int max_x = p[0].x;
    29         int min_y = p[0].y;
    30         int max_y = p[0].y;
    31  
    32         for(int i=1;i<n;i++)
    33         {
    34             min_x = getMin(min_x,p[i].x);
    35             min_y = getMin(min_y,p[i].y);
    36             max_x = getMax(max_x,p[i].x);
    37             max_y = getMax(max_y,p[i].y);
    38  
    39         }
    40         area = (max_x - min_x)*(max_y-min_y);
    41         cout<<area<<endl;
    42     }
    43     return 0;
    44 }
  • 相关阅读:
    快速击键(MyEclipse编写的QuickHit项目)
    Java语言中的修饰符
    Java中的接口
    建造者模式应用场景
    原型设计模式
    转:fortios 5.4后门植入
    转:json注入
    linux tips
    资料收集
    转:nginx+CGI/FASTCGI
  • 原文地址:https://www.cnblogs.com/qqky/p/6991524.html
Copyright © 2020-2023  润新知