hdu 4082 Hou Yi's secret(暴力枚举)
Hou Yi's secret
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1881 Accepted Submission(s): 450

- #include<stdio.h>
- #include<math.h>
- #include<algorithm>
- using namespace std;
- #define eps 1e-10
- #define oo 100000000
- #define pi acos(-1)
- struct point
- {
- double x,y;
- point(double _x = 0.0,double _y = 0.0)
- {
- x =_x;
- y =_y;
- }
- point operator -(const point &b)const
- {
- return point(x - b.x, y - b.y);
- }
- point operator +(const point &b)const
- {
- return point(x +b.x, y + b.y);
- }
- double operator ^(const point &b)const
- {
- return x*b.y - y*b.x;
- }
- double operator *(const point &b)const
- {
- return x*b.x + y*b.y;
- }
- void input()
- {
- scanf("%lf%lf",&x,&y);
- }
- };
- int dcmp(double a)
- {
- if(fabs(a)<eps)return ;
- if(a>)return ;
- else return -;
- }
- bool operator ==(const point &a,const point &b)
- {
- return dcmp(a.x-b.x)==&&dcmp(a.y-b.y)==;
- }
- double dis(point a,point b)
- {
- return sqrt((a-b)*(a-b));
- }
- double len(point a)
- {
- return sqrt(a*a);
- }
- double Angle(point a,point b)
- {
- double ans=acos((a*b)/len(a)/len(b));
- return ans;
- }
- bool cmp(point a,point b)
- {
- if(dcmp(a.x-b.x)==)return a.y<b.y;
- return a.x<b.x;
- }
- double jiao[];
- int dp[][];
- point P[],p[];
- int main()
- {
- int n,i,j,k;
- while(~scanf("%d",&n)&&n)
- {
- for(i=;i<n;i++) P[i].input();
- int ss=;
- sort(P,P+n,cmp);
- p[]=P[];
- for(i=;i<n;i++)//排除重复的点!!
- {
- if(p[ss-]==P[i])
- continue;
- p[ss++]=P[i];
- }
- n=ss;
- int cnt=;
- for(i=;i<n;i++)
- for(j=;j<n;j++)
- for(k=;k<n;k++)
- {
- if(i!=j&&i!=k&&j!=k)
- {
- point v,w;
- v=p[j]-p[i];
- w=p[k]-p[i];
- double ag=Angle(v,w);
- if(dcmp(ag)>)
- jiao[cnt++]=ag;
- }
- }
- sort(jiao,jiao+cnt);
- cnt=unique(jiao,jiao+cnt)-jiao;
- for(i=;i<=cnt;i++)
- for(j=;j<=cnt;j++)
- dp[i][j]=;
- for(i=;i<n;i++)
- for(j=i+;j<n;j++)
- for(k=j+;k<n;k++)
- {
- point v,w;
- double ag1,ag2,ag3;
- v=p[j]-p[i];
- w=p[k]-p[i];
- if(dcmp(v^w)==)continue;//排除共线情况,否则wa!!
- ag1=Angle(v,w);
- v=p[i]-p[j];
- w=p[k]-p[j];
- ag2=Angle(v,w);
- v=p[i]-p[k];
- w=p[j]-p[k];
- ag3=Angle(v,w);
- double aa[];
- aa[]=ag1;aa[]=ag2;aa[]=ag3;
- sort(aa,aa+);
- int ii,jj;
- for(int kk=;kk<cnt;kk++)
- {
- if(dcmp(aa[]-jiao[kk])==)ii=kk;
- if(dcmp(aa[]-jiao[kk])==){jj=kk;break;}
- }
- dp[ii][jj]++;
- }
- int ans=;
- for(i=;i<cnt;i++)
- for(j=i;j<cnt;j++)
- if(dcmp(jiao[i])!=)
- ans=max(ans,dp[i][j]);
- printf("%d\n",ans);
- }
- return ;
- }
hdu 4082 Hou Yi's secret(暴力枚举)的更多相关文章
- 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 (简单计算几何)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4082 题目大意: 给你n个点,问能最多构成多少个相似三角形. 用余弦定理,计算三个角度,然后暴力数有多 ...
- HDU - 4082 Hou Yi's secret
题意:射箭落在n个点,任取三点可构成一个三角形,问最大的相似三角形集(一组互相相似的三角形)的个数. 分析: 1.若n个点中有相同的点,要去重,题目中说射箭会形成洞,任选三个洞构成三角形,因此射在同一 ...
- HDU - 1248 寒冰王座 数学or暴力枚举
思路: 1.暴力枚举每种面值的张数,将可以花光的钱记录下来.每次判断n是否能够用光,能则输出0,不能则向更少金额寻找是否有能够花光的.时间复杂度O(n) 2.350 = 200 + 150,买350的 ...
- HDU 5944 Fxx and string(暴力/枚举)
传送门 Fxx and string Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Othe ...
- hdu 4968 Improving the GPA (水 暴力枚举)
题目链接 题意:给平均成绩和科目数,求可能的最大学分和最小学分. 分析: 枚举一下,可以达到复杂度可以达到10^4,我下面的代码是10^5,可以把最后一个循环撤掉. 刚开始以为枚举档次的话是5^10, ...
- HDU 5660 jrMz and angles (暴力枚举)
jrMz and angles 题目链接: http://acm.hust.edu.cn/vjudge/contest/123316#problem/E Description jrMz has tw ...
- hdu 5595 GTW likes math(暴力枚举查询)
思路:直接暴力枚举区间[l,r]的整数值,然后max和min就可以了. AC代码: #pragma comment(linker, "/STACK:1024000000,1024000000 ...
随机推荐
- MySQL Password Expired
好久没有登录MySQL,登录的时候遇到如下提示: 尝试使用命令行登录,发现是可以使用之前的密码登录的,如下: 只是登录之后,发现做不了什么操作.并且使用,alter 语句重设密码也没有成功,如下: 试 ...
- Visual Studio2015 community 许可证到期问题
申请微软账户直接登录可以继续使用.
- axios的详细用法以及后端接口代理
安装 使用 npm: $ npm install axios 或者 使用 bower: $ bower install axios 或者直接使用 cdn: <script src="h ...
- 002-localStorage和sessionStorage操作
一.概述 HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储 一直存在除非用户手动清除缓存;是基于域的,任何该域下的所有页面都可访问localSto ...
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_09 序列化流_2_对象的序列化流_ObjectOutputStream
创建person对象.生成构造方法全参和无参.getter和setter 抛出异常:没有序列化异常 接口的源码 啥都没有.就起到一个标记的作用 用二进制存的
- IDEA开发环境设置
IDEA开发环境设置 1.关闭自动更新 IntelliJ IDEA默认会自动进行版本的更新,在网络异常时经常会导致各种各样的问题,因此强烈建议关闭自动更新. File->Settings 2.隐 ...
- NoSQL基础学习
NoSQL基础学习 最近学习的第一个Nosql就是Mongodb,为了了解Nosql的基本知识,特地总结,主要是学习Nosql的理论 一.Introduction(介绍) 它是“ Not Only S ...
- mysql忘记密码/修改密码
关键词:忘记密码,修改密码,mysql忘记密码,mysql修改密码 转自:https://www.cnblogs.com/jdxn/p/6847089.html 方法1: 用SET PASSWORD命 ...
- Maven构建Struts2框架的注意事项
[本人出错点:404,就是在web.xml配置文件中少配置了struts.xml的路径] 1.创建Maven,搭建Struts框架,实现最基本的Hello World 在pom.xml中加入strut ...
- Ant-编译构建(1)-HelloWorld
1.项目目录构成,lib包暂时为空,本次例子未引入第三方包. 2.编写相关的build.xml <?xml version="1.0" encoding="utf- ...