题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4082

题目大意:

给你n个点,问能最多构成多少个相似三角形。

用余弦定理,计算三个角度,然后暴力数有多少个,更新答案。

代码:

 #include <cstdio>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <vector>
#include <set>
using namespace std;
typedef pair<int,int> PII;
typedef long long LL; #define EPS 1e-8
#define PB push_back struct POINT{
int x,y;
double dis(const POINT& b){
return sqrt( double(x-b.x)*double(x-b.x)+double(y-b.y)*double(y-b.y) );
}
POINT(int ax=,int ay=):x(ax),y(ay){}
bool operator==(const POINT &b) const{
return x==b.x&&y==b.y;
}
bool operator<(const POINT &b) const{
if( x==b.x ) return y<b.y;
return x<b.x;
}
}; struct triangle{
double cosa[];
triangle(){} triangle(POINT a,POINT b,POINT c){
double A = a.dis(b);
double B = a.dis(c);
double C = b.dis(c); cosa[] = (A*A+B*B-C*C)/(*A*B);
cosa[] = (B*B+C*C-A*A)/(*B*C);
cosa[] = (A*A+C*C-B*B)/(*A*C);
sort(cosa,cosa+);
} triangle(double a,double b,double c){
cosa[] = a;
cosa[] = b;
cosa[] = c;
sort(cosa,cosa+);
} bool operator==(const triangle& b) const{
return fabs(cosa[]-b.cosa[])<EPS&&fabs(cosa[]-b.cosa[])<EPS&&fabs(cosa[]-b.cosa[])<EPS;
} }; bool isLine(POINT a,POINT b,POINT c){
return (c.x-a.x)*(b.y-a.y) == (b.x-a.x)*(c.y-a.y);
} POINT pt[];
int n; int main(){
while( scanf("%d",&n)!=EOF && n ){
set<POINT> st;
int ptrb = ;
for(int i=;i<n;i++){
int x,y;
scanf("%d%d",&x,&y);
if( st.find(POINT(x,y))==st.end() ){
pt[ptrb++] = POINT(x,y);
st.insert(POINT(x,y));
}
} vector<triangle> vec;
for(int i=;i<ptrb;i++){
for(int j=i+;j<ptrb;j++){
for(int k=j+;k<ptrb;k++){
if( !isLine(pt[i],pt[j],pt[k])){
vec.PB(triangle(pt[i],pt[j],pt[k]));
}
}
}
} int maxn = ; for(size_t i=;i<vec.size();i++){
int as = ; for(size_t j=i+;j<vec.size();j++){
if( vec[i]==vec[j] ) as++;
}
maxn = max(as,maxn);
}
printf("%d\n",maxn);
}
return ;
}

[HDU 4082] Hou Yi's secret (简单计算几何)的更多相关文章

  1. hdu 4082 Hou Yi's secret(暴力枚举)

    Hou Yi's secret Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  2. HDU 4082 Hou Yi's secret --枚举

    题意: 给n个点,问最多有多少个相似三角形(三个角对应相等). 解法: O(n^3)枚举点,形成三角形,然后记录三个角,最后按三个角度依次排个序,算一下最多有多少个连续相等的三元组就可以了. 注意:在 ...

  3. HDU 4082 Hou Yi's secret(暴力)

    直接6重循环就行了吧...判三角形相似直接从小到大枚举两向量夹角是否相等就行了.注意去重点跟三点共线就行了... #include<algorithm> #include<iostr ...

  4. HDU - 4082 Hou Yi's secret

    题意:射箭落在n个点,任取三点可构成一个三角形,问最大的相似三角形集(一组互相相似的三角形)的个数. 分析: 1.若n个点中有相同的点,要去重,题目中说射箭会形成洞,任选三个洞构成三角形,因此射在同一 ...

  5. 2018.07.04 POJ 2398 Toy Storage(二分+简单计算几何)

    Toy Storage Time Limit: 1000MS Memory Limit: 65536K Description Mom and dad have a problem: their ch ...

  6. HDU 5795 A Simple Nim(简单Nim)

    p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-s ...

  7. HDU 5073 Galaxy (2014 Anshan D简单数学)

    HDU 5073 Galaxy (2014 Anshan D简单数学) 题目链接http://acm.hdu.edu.cn/showproblem.php?pid=5073 Description G ...

  8. ●POJ 1556 The Doors(简单计算几何+最短路)

    ●赘述题目 10*10的房间内,有竖着的一些墙(不超过18个).问从点(0,5)到(10,5)的最短路. 按照输入样例,输入的连续5个数,x,y1,y2,y3,y4,表示(x,0--y1),(x,y2 ...

  9. HDU 4720 Naive and Silly Muggles (简单计算几何)

    Naive and Silly Muggles Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/ ...

随机推荐

  1. tengine安装

    下载地址: http://tengine.taobao.org/download_cn.html $tar -xvzf tengine-2.1.2.tar.gz $./configure$ make$ ...

  2. 阿里云centos增加swap(虚拟内存)

    我的阿里云服务器默认是没有配swap交换文件. 创建swap根目录 mkdir /swap 创建swap dd if=/dev/zero of=/swap/swap bs=1024 count=102 ...

  3. Maven 如何为不同的环境打包 —— 开发、测试和生产环境

    在开发过程中,我们的软件会面对不同的运行环境,比如开发环境.测试环境.生产环境,而我们的软件在不同的环境中,有的配置可能会不一样,比如数据源配置.日志文件配置.以及一些软件运行过程中的基本配置,那每次 ...

  4. [mysql] mysqldump 导出数据库表

    1.mysqldump的几种常用方法: (1)导出整个数据库(包括数据库中的数据) mysqldump -u username -p dbname > dbname.sql (2)导出数据库结构 ...

  5. Winform用匿名方法新建线程的方法

    作用:1.将耗时的操作放在单独的线程,加快UI的响应速度.Thread t = new Thread(delegate() { parse.ParseDay(StockCode, FileName); ...

  6. (转)C# 使用BackgroundWorker

    本文转载自:http://blog.csdn.net/andrew_wx/article/details/6615077 该例子为使用BackgroundWorker在TextBox文本中产生一个10 ...

  7. How to install Wordpress 4.0 on CentOS 7.0

    This document describes how to install and configure Wordpress 4.0 on CentOS 7.0. WordPress started ...

  8. ASP.net中网站访问量统计方法代码(在线人数,本月访问,本日访问,访问流量,累计访问)

    一.建立一个数据表IPStat用于存放用户信息 我在IPStat表中存放的用户信息只包括登录用户的IP(IP_Address),IP来源(IP_Src)和登录时间 (IP_DateTime),些表的信 ...

  9. VisualStudio Form文件构成说明

    创建一个窗体Form1.cs 后,在他的下一级,有两个子文件: Form1.Designer.cs 和Form1.resx 这两个子文件 Form1.Designer.cs是VS自动生成用作UI的绘制 ...

  10. 杀死future处理的阻塞线程

    public class Test{ public static void main(String[] args){ ExecutorService pool = Executors.newFixed ...