题目链接:

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(相似三角形的个数)相关推荐

  1. hdu4082 Hou Yi's secret(相似三角形)

    Hou Yi's secret Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Tot ...

  2. 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 ...

  3. HDU - 4082 Hou Yi‘s secret (计算几何)

    点击打开题目链接 Hou Yi's secret Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java ...

  4. HDU4082(相似三角形的个数)

    题目:Hou Yi's secret #include<stdio.h> #include<math.h> #include<map> #include<io ...

  5. HDU - 4082 Hou Yi's secret

    题意:求最多有多少的相似三角形 思路:枚举的情况下加上余弦定理,还有的就是要去重,相似的话,我们只要判断较小的两个角相等就行了,当然还要有精度的考虑 #include <iostream> ...

  6. 数论四之综合训练——Magic Pairs,Crime Management,Top Secret,组合数问题

    数论综合训练 Magic Pairs problem solution code CF107D Crime Management problem solution code UVA12183 Top ...

  7. 深蓝学院-视觉SLAM理论与实践-第十二期-第4章作业

    图像去畸变 程序思路 根据相机内参,将无畸变的像素坐标反向投影到归一化平面 通过畸变模型计算无畸变归一化坐标对应的含有畸变的归一化坐标 利用相机内参,将含有畸变的归一化坐标投影到相机坐标系中 源代码 ...

  8. 高斯牛顿法在具体工程中的应用——C++版

    高斯牛顿法在具体工程中的应用--C++版 说明:本文章没有用大量篇幅来讲述高斯牛顿的原理和数学中的应用,而是用具体的代码来说明,具体是怎么应用的. 如果对高斯牛顿法的原理比较感兴趣,可以阅读以下链接中 ...

  9. ACM2023SWJTU寒假选拔赛2不完全题解

    2022.01.15.更新D | L:数学找规律 | dfs(tle)->贪心模拟 2022.01.14.更新L题:统计连通子图数模型,三解:dsu,bfs,dfs 文章目录 B - 这是一道方 ...

最新文章

  1. 微信小程序网络请求代码片段
  2. 浅析网站SEO优化用户体验值包括什么后续又该如何进行提升?
  3. U3D assetbundle加载
  4. 80. 删除有序数组中的重复项 II
  5. MYSQL中用正则筛选一定的数据
  6. 【手算】逆序数树形计算方法
  7. C语言显示系统时间的几个办法
  8. POJ3349 Snowflake Snow Snowflakes(hash)
  9. ElasticSearch 5学习(10)——结构化查询(包括新特性)
  10. 分布式存储系统学习笔记(一)—什么是分布式系统(3)—复制
  11. Disruptor 极速体验
  12. 工业控制系统(ICS)
  13. 经典解析23 种设计模式
  14. hadoop到底是什么
  15. 直播频频翻车:追风口的人,变成风口杀手
  16. 探秘国内地下数据交易市场
  17. 用于视觉语言导航的自监督三维语义表示学习
  18. 【Kotlin学习】Kotlin基础知识
  19. 有一点点自恋和臭屁的嫌疑
  20. java时间格式转换pm,将字符串转换为日期和时间为am / pm格式

热门文章

  1. IC前后端001:高扇出的危害
  2. 最大公约数 (20 分) 第三个测试点
  3. 戴尔G15 2021款怎么样
  4. dede织梦模板TAG静态化-按编号数字分页
  5. MFC函数书本速查 API函数大全
  6. P2862 [USACO06JAN]Corral the Cows G
  7. 记 · H2-2光猫telnet破解超管密码
  8. 软考 - 09 预约挂号管理系统
  9. 【知识】太阳能板行业生产加工步骤(超详细)
  10. MSXML操作XML的完整例子