HDU4082Hou Yi's secret(相似三角形的个数)
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=4082
题意:
给定n个点判断这些点能组成的三角形中,与同一个三角形相似的三角形的最大个数。
分析:
就是暴力枚举。但是写的时候要注意以下几点。
1)必须得能组成三角形。
2)去掉重复的点。。。被坑了,orz
代码如下:
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;const double eps = 1e-8;const int maxn = 20;struct point{double x,y;
}p[maxn];struct triangle{double a[3];
}t[maxn*maxn*maxn];int cross(point p0,point p1,point p2){return (p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y);
}
double dis(point p1,point p2){return sqrt((p2.x-p1.x)*(p2.x-p1.x)+(p2.y-p1.y)*(p2.y-p1.y));
}bool similar(triangle t1,triangle t2){if( (fabs(t1.a[0]*t2.a[1]-t1.a[1]*t2.a[0])<eps)&&(fabs(t1.a[1]*t2.a[2]-t1.a[2]*t2.a[1])<eps)&&(fabs(t1.a[0]*t2.a[2]-t1.a[2]*t2.a[0])<eps))return true;return false;
}int main()
{int n;while(~scanf("%d",&n)&&n){for(int i=0;i<n;i++){scanf("%lf%lf",&p[i].x,&p[i].y);for(int j=0;j<i;j++){if(p[i].x==p[j].x&&p[i].y==p[j].y){i--;n--;break;}}}int cnt = 0;if(n<3){puts("0");continue;}for(int i=0;i<n;i++){for(int j=i+1;j<n;j++){for(int k=j+1;k<n;k++){if(cross(p[i],p[j],p[k])){t[cnt].a[0]=dis(p[i],p[j]);t[cnt].a[1]=dis(p[i],p[k]);t[cnt].a[2]=dis(p[j],p[k]);sort(t[cnt].a,t[cnt].a+3);cnt++;}}}}int ans = 0;for(int i=0;i<cnt;i++){int tmp = 1;for(int j=i+1;j<cnt;j++)if(similar(t[i],t[j]))tmp++;ans=max(ans,tmp);}printf("%d\n",ans);}return 0;
}
HDU4082Hou Yi's secret(相似三角形的个数)相关推荐
- hdu4082 Hou Yi's secret(相似三角形)
Hou Yi's secret Time Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Tot ...
- HDU 4082 Hou Yi's secret
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4082 题面: Hou Yi's secret Time Limit: 2000/1000 MS (Ja ...
- HDU - 4082 Hou Yi‘s secret (计算几何)
点击打开题目链接 Hou Yi's secret Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java ...
- HDU4082(相似三角形的个数)
题目:Hou Yi's secret #include<stdio.h> #include<math.h> #include<map> #include<io ...
- HDU - 4082 Hou Yi's secret
题意:求最多有多少的相似三角形 思路:枚举的情况下加上余弦定理,还有的就是要去重,相似的话,我们只要判断较小的两个角相等就行了,当然还要有精度的考虑 #include <iostream> ...
- 数论四之综合训练——Magic Pairs,Crime Management,Top Secret,组合数问题
数论综合训练 Magic Pairs problem solution code CF107D Crime Management problem solution code UVA12183 Top ...
- 深蓝学院-视觉SLAM理论与实践-第十二期-第4章作业
图像去畸变 程序思路 根据相机内参,将无畸变的像素坐标反向投影到归一化平面 通过畸变模型计算无畸变归一化坐标对应的含有畸变的归一化坐标 利用相机内参,将含有畸变的归一化坐标投影到相机坐标系中 源代码 ...
- 高斯牛顿法在具体工程中的应用——C++版
高斯牛顿法在具体工程中的应用--C++版 说明:本文章没有用大量篇幅来讲述高斯牛顿的原理和数学中的应用,而是用具体的代码来说明,具体是怎么应用的. 如果对高斯牛顿法的原理比较感兴趣,可以阅读以下链接中 ...
- ACM2023SWJTU寒假选拔赛2不完全题解
2022.01.15.更新D | L:数学找规律 | dfs(tle)->贪心模拟 2022.01.14.更新L题:统计连通子图数模型,三解:dsu,bfs,dfs 文章目录 B - 这是一道方 ...
最新文章
- 微信小程序网络请求代码片段
- 浅析网站SEO优化用户体验值包括什么后续又该如何进行提升?
- U3D assetbundle加载
- 80. 删除有序数组中的重复项 II
- MYSQL中用正则筛选一定的数据
- 【手算】逆序数树形计算方法
- C语言显示系统时间的几个办法
- POJ3349 Snowflake Snow Snowflakes(hash)
- ElasticSearch 5学习(10)——结构化查询(包括新特性)
- 分布式存储系统学习笔记(一)—什么是分布式系统(3)—复制
- Disruptor 极速体验
- 工业控制系统(ICS)
- 经典解析23 种设计模式
- hadoop到底是什么
- 直播频频翻车:追风口的人,变成风口杀手
- 探秘国内地下数据交易市场
- 用于视觉语言导航的自监督三维语义表示学习
- 【Kotlin学习】Kotlin基础知识
- 有一点点自恋和臭屁的嫌疑
- java时间格式转换pm,将字符串转换为日期和时间为am / pm格式