PKU3301
2013-09-01 11:16
190 查看
#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<string> #include<vector> #include<queue> #include<cmath> #include<memory.h> using namespace std; #define EPS 1e-9 int x[1002],y[1002]; int n; void clear() { memset(x,0,sizeof(x)); memset(y,0,sizeof(y)); } double deta(double d) { int i,j; double dis1,dis2,dis; dis = 0.0; for(i=1;i<n;i++) { for(j=i+1;j<=n;j++) { dis1 = fabs(cos(d)*(y[i]-y[j])-sin(d)*(x[i]-x[j]));//公式看别人的 dis2 = fabs(sin(d)*(y[i]-y[j])+cos(d)*(x[i]-x[j]));//公式 if(dis<dis1)//一条线与x轴是有两个距离的,一个是正轴一个负轴,取小的那个 dis = dis1; if(dis < dis2) dis = dis2; } } return (dis*dis); } int main() { int t; double s1,s2,mid,mmid,l,r; cin>>t; while(t--) { cin>>n; for(int i=1;i<=n;i++) cin>>x[i]>>y[i]; l=0.0; r=acos(-1.0); while(r-l >= EPS) { mid = (l+r)/2; mmid = (mid+r)/2; s1 = deta(mid); s2 = deta(mmid); if(s1<s2) r = mmid; else l = mid; } printf("%0.2lf\n",s1<s2?s1:s2); } return 0; }
相关文章推荐
- hdu 3714
- poj3737UmBasketella三分法求极值
- CF 8D Two Friends 【二分+三分】
- HDU2298(三分法+二分法)
- 通过Flex布局实现三等分
- E - Euclidean TSP UVALive - 6954 (三分)
- BZOJ 3533 Sdoi2014 向量集
- E - Euclidean TSP UVALive - 6954
- TOJ 3777.Function Problem(三分基础题目)
- UVAlive 6694 Toy Boxes(三分)
- Hdu 4454 Stealing a Cake(枚举或三分)
- The Moving Points HDU - 4717 (三分)
- la 5009 - Error Curves(三分)
- 三分模板
- hdu4717(三分法)
- POJ 3737 UmBasketella 三分或公式
- hdu 3400 Line belt 三分
- UVALive-7509-Dome and Steles
- uva1476 Error Curves
- 【NOIP2016提高A组模拟8.14】传送带 (三分套三分)