Axial symmetry FZU - 2035

题意:

给一个多边形,边平行于x轴或者y,问是否存在对称轴

题解:

将每个点的坐标,以及每个边的中点的坐标,按照顺时针顺序存入,多边形的对称轴一定穿过对应两个点,一共有n个候选对称轴,我们依次枚举判断就行,当枚举一个对称轴时,判断其他点是否关于其对称(判断方法,两个直线是否垂直,中点是否在对称轴上)
当然对称轴的斜率k有可能不存在或者为0,记得特判
思路简单不好写

代码:

#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
const int N = 1005;struct Node {double x,y;Node() {}Node(double _x,double _y) {x = _x;y = _y;}
}node[N], p[2*N];
bool equ(double x,double y){if(abs(x-y)<0.0000001)return 1;else return 0;
}
int n;
int main() {int t,cas = 1;scanf("%d",&t);while(t--) {scanf("%d",&n);for(int i = 0; i < n; i++) {scanf("%lf%lf",&node[i].x,&node[i].y);}node[n] = node[0];int tot = 0;p[tot++] = node[0];for(int i = 0; i <= n; i++) {p[tot++] = Node((node[i].x + node[i+1].x) / 2, (node[i].y + node[i+1].y) / 2);p[tot++] = node[i+1];}int a,b;double k1, k2, c;bool ok, flag = false;for(int i = 0; i < n; i++) {ok = true;if( p[i].x == p[i+n].x ) { //如果分母为0,则对称轴垂直于x轴for(int j = 1; j < n; j++) { //对称点 i+j 和 i-j + 2na = (i+j);b = (i-j+2*n);if( (p[a].x + p[b].x)/2 != p[i].x || (p[a].y != p[b].y)) {ok = false;break;}}}else if( p[i].y == p[i+n].y) { //如果分子为0,则对称轴垂直于y轴for(int j = 1; j < n; j++) {a = (i+j);b = (i-j+2*n);if( (p[a].y + p[b].y)/2 != p[i].y || (p[a].x != p[b].x)) {ok = false;break;}}}else{double K,B;K=(p[i].y-p[i+n].y)/(p[i].x-p[i+n].x);B=p[i].y-K*p[i].x;for(int j = 1; j < n; j++) {a = (i+j);b = (i-j+2*n);double k=(p[a].y-p[b].y)/(p[a].x-p[b].x);//y=kx+b  --> b=y-k double xx=(p[a].x+p[b].x)/2,yy=(p[a].y+p[b].y)/2; if(equ(k*K,-1)==0||equ(yy,xx*K+B)==0) {ok = false;break;}}}if(ok) {flag = true;break;}}printf("Case %d: ",cas++);if(flag) {printf("YES\n");}else {printf("NO\n");}}return 0;
}

Axial symmetry FZU - 2035相关推荐

  1. 2011年全国大学生程序设计邀请赛(福州)

    题号 题目 考点 难度 A Password table 模拟 签到 B Axial symmetry 计算几何 代码题 C Log Calculator java大数 D Maximum Value ...

  2. matlab 径向偏振光,径向偏振光的产生与应用..docx

    径向偏振光的产生与应用. 摘 要相比于其他具有传统偏振模式的光束,径向偏振光拥有更为优秀的轴向中心对称性(这种特征在传输过程中保持不变).人们投向径向偏振光的关注越来越多.径向偏振光在高数值孔径条件下 ...

  3. 指纹识别综述(3): 特征提取

    指纹识别综述系列 1.导论:2.指纹传感器:3.特征提取:4.匹配:5.分类与检索:6.现场指纹识别: 7.指纹合成: 8.唯一性: 9.指纹系统安全:10.深度学习方法:11.专利. 本文主要基于& ...

  4. 计算几何及其应用——计算几何基础

    写在前面:当时开计算几何这个专题神奇的从解析几何开始了,然后最近发现<计算几何及应用(金博)>这本书前面那章忽略掉了一些重要的东西比如说点定位.半平面相交之类的东西,恰好还有一些和计算几何 ...

  5. 机器视觉应用于蔬果检测方面的相关英语词汇

    本篇博文所有词汇均摘自下列一论文,其中大部分难点词汇已经标注 Title:Shape determination of horticultural produce using two-dimensio ...

  6. fzu 2150 Fire Game 【身手BFS】

    称号:fzu 2150 Fire Game :给出一个m*n的图,'#'表示草坪,' . '表示空地,然后能够选择在随意的两个草坪格子点火.火每 1 s会向周围四个格子扩散,问选择那两个点使得燃烧全部 ...

  7. FZU 1686 神龙的难题(DLX反复覆盖)

    FZU 1686 神龙的难题 题目链接 题意:中文题 思路:每个1看成列,每个位置作为左上角的矩阵看成行.dlx反复覆盖就可以 代码: #include <cstdio> #include ...

  8. 演讲实录丨中科大陈小平教授《从封闭性到非封闭性:2020到2035年智能机器的机遇和挑战》...

    来源:中国人工智能学会 陈小平 中国科学技术大学机器人实验室主任.教授 以下是陈小平教授的演讲实录: 非常高兴有这个机会进行中.新学术交流.本报告包括四方面内容.第一,关于人工智能(简称AI)的两种类 ...

  9. 自动驾驶的摩尔定律:无人驾驶的最终实现时间或在2035年丨厚势汽车

    来源:厚势汽车  无人驾驶的真正落地时间的预测,近两年从非常乐观迅速转向谨慎甚至悲观.真正的无人驾驶到底还需要多久,无人驾驶初创公司 May Mobility 的 CEO Edwin Olson,针对 ...

最新文章

  1. 云计算服务在小企业中的意义如何?
  2. php curl viewstate,php curl – 发布asp.net viewstate值
  3. php curl伪装cookies,php curl 添加cookie伪造登陆抓取数据
  4. Spring Cloud 之 Ribbon,Spring RestTemplate 调用服务
  5. 常用的排序算法总结(三)
  6. 爬虫系列4:Requests+Xpath 爬取动态数据
  7. springfox源码_springfox 源码分析(七) 文档初始化
  8. (素材源码)猫猫学IOS(十)UI之_NSTimer_ios计时器
  9. [BootStrap学习随笔] 起步、布局容器和栅格式布局
  10. WCF - MaxStringContentLength MaxReceivedMessageSize
  11. 2017年数学建模美赛个人国际一等奖论文
  12. Telnet 工具远程连接服务器
  13. cx oracle 中文 u,cx_Oracle 中文乱码
  14. 计算机应用一些常用技巧
  15. 弗吉尼亚理工大学计算机科学,弗吉尼亚理工大学计算机科学排名第45(2020年TFE美国排名)...
  16. 7款英文语法检查工具推荐
  17. 哪一种语言最流行?VB,C++,JAVA? (转)
  18. 参加河北省研究生数学建模比赛有感
  19. 校园网组建 (基于Packet tracer)
  20. Scipy.sparse中coo_matrix、csc_matrix、csr_matrix、lil_matrix区别与特点

热门文章

  1. 科幻作家阿西莫夫上世纪预言2019: 计算机彻底变革教育,太空移民进行中
  2. 机器学习核心算法之——贝叶斯方法
  3. hive集成spark和mysql
  4. java iter是否存在_Java中ListIterator和Iterator的区别以及ListIterator的应用
  5. php mysql explain_MySQL Explain详解
  6. 上传html 0字节,HTML ajax 上传文件限制文件的类型和文件大小
  7. 信息技术上册教案了解计算机,信息技术上册全册教案
  8. php复制整个文件夹,PHP实现递归复制整个文件夹的类实例
  9. solidity payable_以太坊区块链搭建与使用(五)-智能合约Solidity
  10. gif android 点击 加载,android 加载显示gif图片的解决方案