题目大意紫书和原文都讲的非常易懂清晰,

观察给出的数据范围:不超过1000个点,每个点坐标范围在-10000到10000之间!

直接暴力求解就可以了!

整体思路:

因为一撮点要轴对称的话,肯定有一个确定的对称轴,所以可以先找两个点,来确定对称轴,在一个一个扫描所有的点,看看是不是对称!

为了方便,可以直接找最左上和最右上的两个点,来确定对称轴!

有一个技巧:因为对称轴是要除以二的,不妨存点的时候,直接存坐标的二倍,以保证整数!

#include<cstdio>
using namespace std;
const int maxn = 1000 + 5;
struct point
{int x,y;
}A[maxn];
int judge(int num,int N,int line){for (int i = 0; i < N; ++i)if(A[num].x + A[i].x == 2 * line && A[num].y == A[i].y)return 1;return 0;
}
int main()
{int T,N,x,y,line,flag = 0,left = 0,right = 0;scanf("%d",&T);while(T--){scanf("%d",&N);flag = left = right = 0;for (int i = 0; i < N; ++i){scanf("%d%d",&x,&y);A[i] = (point){2 * x,2 * y};}for (int i = 0 ; i < N; ++i){if (A[i].x < A[left].x)left = i;else if (A[i].x == A[left].x && A[i].y > A[left].y)left = i;if (A[i].x > A[right].x)right = i;else if (A[i].x == A[right].x && A[i].y > A[right].y)right = i;}line = (A[left].x + A[right].x ) / 2;for (int i = 0; i < N; ++i)if (!judge(i,N,line)){flag = 1;break;}flag == 0 ? (printf("YES\n")) : (printf("NO\n"));}return 0;
}

5-6 UVA 1595 Symmetry对称轴相关推荐

  1. UVA 1595 Symmetry

    思路: 这道题和 UVA221 Urban Elevations 思路一样的:用结构体pot存x,y的值: 用double数组x存下每一个可以做对称轴的点,然后sort,unique,然后遍历每一个对 ...

  2. Symmetry UVA - 1595

    不能再摸鱼了,加油! #include <bits/stdc++.h> using namespace std; int main () {int n;cin>>n;while ...

  3. 1595:Symmetry

    Symmetry 我的思路: 开始是想着将所有点都存在set里面,找出对称轴,然后对于每一个点确定其对称点是否存在,但是觉得这样效率似乎太低,就放弃了. 后来想到了这样做:将所有点按x坐标进行排序,若 ...

  4. 紫书《算法竞赛入门经典》

    紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...

  5. Uva1595 对称轴

    Uva 1595对称轴 题目描述: 给出平面上N个点,问是否可以找到一条竖线,使得所有点左右对称. 思路: 这个题我的思路是将所有高度(y)相同的点求每组高度的坐标x的平均值,如果总个数N是偶数,那么 ...

  6. WaWa的奇妙冒险(第二周集训自闭现场)

    第二周周记 (一)例题记录 A-简单计算器 (水题,栈的运用) HDU - 1237 Input Output Sample Input Sample Output 理解 AC代码 B-计算 (逆波兰 ...

  7. 算法竞赛入门经典(第2版)—第五章(C++与STL入门)

    文章目录 零碎知识点整理 题目 10474 - Where is the Marble? 101 - The Blocks Problem 10815 - Andy's First Dictionar ...

  8. 集训der二周目学习(练习题+感悟)

    永动WA题机der二周目学习摘录 (一)有趣的题目 A - 看病要排队 HDU - 1873 Input Output Sample Input Sample Output 对题目的理解 代码 B - ...

  9. 数学术语的英汉对照(权威,全面)

    abbreviation 简写符号:简写 abscissa 横坐标 absolute complement 绝对补集 absolute error 绝对误差 absolute inequality 绝 ...

最新文章

  1. 机器学习入门(13)— Affine 仿射层、Softmax 归一化指数函数层实现
  2. 音乐处理---H_music.php
  3. 并发编程基础之volatile关键字的用法
  4. C/C++ 回调函数是什么?Intel Realsense里的回调(callback)是什么?
  5. 丰收互联蓝牙key怎么开机_ublox收购Rigado的蓝牙模块业务,扩大蓝牙低功耗产品组合...
  6. 第二十五期:5G预约用户超千万!是“虚火”还是“真旺”?
  7. java string字符拼接符+的研究
  8. svn上传时显示database is locked
  9. java高并发编程艺术_[高并发]Java高并发编程系列开山篇--线程实现
  10. JavaSE|StringBuffer
  11. 【ENVI】利用矢量shp数据做裁剪报错及解决办法
  12. js怎么获取ueditor值_js获取UEditor富文本编辑器中的图片地址
  13. UI设计师应聘面试攻略看这篇就够了
  14. 报表工具ActiveReports开发实例——物联网智能供水云平台
  15. 新技术加速隐私暴露,如何应对?(二)
  16. 【北大/上交/浙大/中科大/山大】公布复试分数线!【34所自划线】
  17. PCB之AD快速布局
  18. 【财经期刊FM-Radio|2020年11月19日】
  19. 寂静岭2java攻略_寂静岭2攻略 全剧情流程图文攻略+隐藏要素解谜
  20. 11月1日到11月14日的成果

热门文章

  1. 使用Tensorflow训练一元线性模型
  2. 计网核心总结(测试开发面试常问题目)
  3. 流氓软件卸载与避免的一些方法
  4. 微信公众号html标签,微信公众号用户标签管理
  5. PATA1052 Linked List Sorting (25 分)
  6. 最常见的Git错误都有哪些,如何解决它们?
  7. Bzoj 1596: [Usaco2008 Jan]电话网络
  8. 编程之类的文案_有什么有逼格的四字文案?
  9. 网络布线与进制转换(详解)
  10. Linux(十二)中断系统