Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
谁给看看哪里错了 或者给点数据 总是wa#include <iostream> #include <math.h> #include <algorithm> using namespace std; const double esp=1e-6; struct poi { double x,y; }a[656]; double dist[656][656]; int n; /* cosA = (b^2+c^2-a^2)/(2bc) 求出sinA 则,根据正弦定理: 外接圆半径 = a/(2*sinA) */ inline double dis(poi a,poi b) {return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));} inline double cosquare(int x,int y,int z) { double l; l=(dist[x][y]+dist[x][z]+dist[y][z])/2.0; /* if(fabs(l-dist[x][y])<esp||fabs(l-dist[x][z])<esp||fabs(l-dist[y][z])<esp) return 0;*/ return dist[x][y]*dist[x][z]*dist[y][z]/sqrt(l*(l-dist[x][y])*(l-dist[x][z])*(l-dist[y][z])); } int main() { //freopen("in.txt","r",stdin); int t,i,j,k; double r,maxx; scanf("%d",&t); while(t--) { scanf("%d",&n); maxx=0; for(i=1;i<=n;i++) scanf("%lf%lf",&a[i].x,&a[i].y); for(i=1;i<=n;i++) for(j=1;j<=n;j++) dist[i][j]=dis(a[i],a[j]); for(i=1;i<=n;i++) { for(j=i+1;j<=n;j++) { for(k=j+1;k<=n;k++) { r=cosquare(i,j,k); if(r>maxx) maxx=r; } } } printf("%.3lf\n",maxx/4); } return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator