Uva 10112 Myacm Triangles
来源:互联网 发布:淘宝超级搜索 编辑:程序博客网 时间:2024/06/05 17:23
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1053
题意:给一堆点,求这些点构成的面积最大且不包含其他点的三角形。
题解:数据量15,直接O(n4)枚举。
代码:
#include<cstdio>#include<iostream>#include<cmath>#include<algorithm>#include<string>using namespace std;struct Point{ double x,y; char s; Point(double x=0,double y=0,char s='\0'):x(x),y(y),s(s) {} //构造函数};typedef Point Vector;Vector operator + (Vector A,Vector B){ return Vector(A.x+B.x,A.y+B.y);}Vector operator - (Point A,Point B){ return Vector(A.x-B.x,A.y-B.y);}double Cross(Vector A,Vector B){ return A.x*B.y-A.y*B.;}//利用叉积求三角形面积double Area2(Point A,Point B,Point C){ return fabs(Cross(B-A,C-A))/2;}bool judge(Point A,Point B,Point C,Point p){ bool flag1=Cross(p-A,B-A)<=0&&Cross(p-B,C-B)<=0&&Cross(p-C,A-C)<=0; bool flag2=Cross(p-A,B-A)>=0&&Cross(p-B,C-B)>=0&&Cross(p-C,A-C)>=0; return flag1||flag2;}int main(){ int n; while(cin>>n&&n) { Point P[n]; for(int i=0; i<n; i++) { getchar(); scanf("%c %lf %lf",&P[i].s,&P[i].x,&P[i].y); } double area=0; char posi,posj,posk; for(int i=0; i<n; i++) for(int j=i+1; j<n; j++) for(int k=j+1; k<n; k++) { int flag=1; for(int p=0; p<n; p++) { if(p==i||p==j||p==k) continue; if(judge(P[i],P[j],P[k],P[p])) { flag=0; break; } } if(flag&&area<Area2(P[i],P[j],P[k])) { area=Area2(P[i],P[j],P[k]); posi=P[i].s; posj=P[j].s; posk=P[k].s; } } string s; s+=posi; s+=posj; s+=posk; sort(s.begin(),s.end()); cout<<s<<endl; } return 0;}
阅读全文
0 0
- UVa 10112 Myacm Triangles
- uva 10112 - Myacm Triangles
- UVA-10112 - Myacm Triangles
- UVa 10112 - Myacm Triangles
- UVa 10112 - Myacm Triangles
- Uva 10112 - Myacm Triangles
- uva 10112 Myacm Triangles
- UVA 10112 Myacm Triangles
- UVA 10112 - Myacm Triangles
- uva 10112 Myacm Triangles
- UVa 10112 - Myacm Triangles
- UVa 10112 - Myacm Triangles
- Uva 10112 Myacm Triangles
- UVA - 10112 Myacm Triangles
- UVA - 10112 Myacm Triangles
- UVA - 10112 Myacm Triangles
- UVA 10112 Myacm Triangles
- UVA - 10112 Myacm Triangles
- 怎么使用wireshark
- 使用Storm实现实时大数据分析
- java.net.SocketTimeoutException: failed to connect to /192.168.1.233 (port 8080) after 10000ms
- 找到第一个只出现一次的字符 python
- React 各种组件关系通信
- Uva 10112 Myacm Triangles
- 实验报告->数组的定义和使用->两路合并法合并两个升序数组
- KNN 算法
- 大数据,物联网,万物互联网,云计算,雾计算,边缘计算的区别和联系
- iBase4j前后台
- java.io.IOException: No FileSystem for scheme: hdfs
- 3-3 对查询结果进行排序
- Cin的用法详解以及文件的读取
- CountDownLatch闭锁