[HDU 4082] Hou Yi's secret (简单计算几何)
题目链接: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 (简单计算几何)的更多相关文章
- hdu 4082 Hou Yi's secret(暴力枚举)
Hou Yi's secret Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- HDU 4082 Hou Yi's secret --枚举
题意: 给n个点,问最多有多少个相似三角形(三个角对应相等). 解法: O(n^3)枚举点,形成三角形,然后记录三个角,最后按三个角度依次排个序,算一下最多有多少个连续相等的三元组就可以了. 注意:在 ...
- HDU 4082 Hou Yi's secret(暴力)
直接6重循环就行了吧...判三角形相似直接从小到大枚举两向量夹角是否相等就行了.注意去重点跟三点共线就行了... #include<algorithm> #include<iostr ...
- HDU - 4082 Hou Yi's secret
题意:射箭落在n个点,任取三点可构成一个三角形,问最大的相似三角形集(一组互相相似的三角形)的个数. 分析: 1.若n个点中有相同的点,要去重,题目中说射箭会形成洞,任选三个洞构成三角形,因此射在同一 ...
- 2018.07.04 POJ 2398 Toy Storage(二分+简单计算几何)
Toy Storage Time Limit: 1000MS Memory Limit: 65536K Description Mom and dad have a problem: their ch ...
- HDU 5795 A Simple Nim(简单Nim)
p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-s ...
- HDU 5073 Galaxy (2014 Anshan D简单数学)
HDU 5073 Galaxy (2014 Anshan D简单数学) 题目链接http://acm.hdu.edu.cn/showproblem.php?pid=5073 Description G ...
- ●POJ 1556 The Doors(简单计算几何+最短路)
●赘述题目 10*10的房间内,有竖着的一些墙(不超过18个).问从点(0,5)到(10,5)的最短路. 按照输入样例,输入的连续5个数,x,y1,y2,y3,y4,表示(x,0--y1),(x,y2 ...
- HDU 4720 Naive and Silly Muggles (简单计算几何)
Naive and Silly Muggles Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/ ...
随机推荐
- oracle中where 子句和having子句中的区别
1.where 不能放在GROUP BY 后面 2.HAVING 是跟GROUP BY 连在一起用的,放在GROUP BY 后面,此时的作用相当于WHERE 3.WHERE 后面的条件中不能有聚集函数 ...
- 每天一个linux命令-转载
每天一个linux命令目录 转载自: http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html 开始详细系统的学习linux常用命令 ...
- mysql edit
表外键5个相关性: cascade,restrict,set null,no action,default show character set ; show collation like ' ...
- Httpservlet cannot be resolved to a type的原因与解决方法
刚开始学习Servlet,在Eclipse中新建了一个Servlet,不过页面上报错: Httpservlet cannot be resolved to a type,显然是Eclipse找不到相应 ...
- Protocol Buffer基本介绍
转自:http://www.cnblogs.com/stephen-liu74/archive/2013/01/02/2841485.html 该系列Blog的内容主体主要源自于Protocol Bu ...
- [原]对Linux环境下任务调度一点认识
我一直以来有一个误解,那就是在终端运行某个程序时,按下Ctrl + D时我误以为就是杀死了这个进程,今天才知道原来不是.比如我利用libevent在Linux环境下写了一个网络监听程序,当启动程序之后 ...
- java数组操作
@Bizlet("数据对象扩展运算逻辑")public class DataObjectExt { private DataObjectExt(){ //工具类不能实例化 } /* ...
- DEBUG测试
这几天看一个ros软路由的的API借口的C++实现看到一个关于DEBUG的测试,第一次见,感觉挺实用的,记录一下: #include<iostream> #include <stdi ...
- S3C2440之MMU
转自:http://blog.chinaunix.net/uid-23193900-id-3187782.html 1.MMU简介 MMU(Memory Management Unit),内存管 ...
- Tomcat插件与Jetty插件在MyEclipse中的配置
-Djetty.port=8101 jetty:run tomcat6:run <plugin> <groupId>org.apache.tomcat.maven</gr ...