zoukankan      html  css  js  c++  java
  • 算法习题---5-6对称轴(UVa1595)

    一:题目

    判断平面上的一组点,是否关于一条竖线对称。即找到一条垂直对称轴

    (一)样例输入

    3
    5
    -2 5
    0 0
    6 5
    4 0
    2 3
    4
    2 3
    0 4
    4 0
    0 0
    4
    5 14
    6 10
    5 10
    6 14

    (二)样例输出

    YES
    NO
    YES

    二:代码实现

    #define _CRT_SECURE_NO_WARNINGS
    #include <iostream>
    #include <algorithm>
    
    using namespace std;
    
    #define MAX_LEN 1000
    
    typedef struct Pot
    {
        double x;
        double y;
        bool operator<(struct Pot& other)const
        {
            return x < other.x;
        }
    }Pots;
    
    int main()
    {
        freopen("data5_6_h.in", "r", stdin);
        freopen("data5_6_h.out", "w", stdout);
    
        Pots pos[MAX_LEN];
        double check_pos;
    
        int total_num, num,i;
        cin >> total_num;
        while (total_num--)
        {
            cin >> num;        //信息获取
            for (i = 0; i < num; i++)
                cin >> pos[i].x >> pos[i].y;
    
            sort(pos, pos + num);  //排序后我们只需要找到中心点(最靠近中间的那两个,或者那一个点)即可check_pos
            if (num % 2 == 0)
                check_pos = (pos[num / 2 - 1].x + pos[num / 2].x) / 2;
            else
                check_pos = pos[num / 2].x;
            
            bool flag=true;
            for (int i = 0; i < num / 2; i++)        //进行信息校验
                if (pos[i].y != pos[num-i-1].y || (pos[i].x + pos[num-i-1].x) / 2 != check_pos)
                {
                    flag = false;
                    break;
                }
            if (flag)
                cout << "YES" << endl;
            else
                cout << "NO" << endl;
        }
    
        freopen("CON", "r", stdin);
        freopen("CON", "w", stdout);
        return 0;
    }
  • 相关阅读:
    锐浪报表应用系列二
    论产品和项目
    我的处女作
    今天晚上吃什么?
    今日晚餐
    PYTHON+数据库
    周末看到小区有个阿姨溜羊驼
    AD 10使用技巧---新学习
    使用.NET进行高效率互联网敏捷开发的思考和探索【一、概述】
    【开发随感】【一】【开发基础的基础】
  • 原文地址:https://www.cnblogs.com/ssyfj/p/11547773.html
Copyright © 2011-2022 走看看