| ||||||||||
| 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 | |||||||||
Re:为什么总编译错误呢?求指教、。。。In Reply To:为什么总编译错误呢?求指教、。。。 Posted by:201141843222 at 2012-09-07 15:20:34 > #include <iostream>
> #include <stdio.h>
> #include <stdlib.h>
> #include <math.h>
> #define PI acos(-1)
> using namespace std;
>
> struct point
> {
> int x;
> int y;
> } point;
> struct point f[1002];
> struct point tmp;
> int multiply(struct point p1,struct point p2,struct point p0)//坐标排序
> {
> return((p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y));
> }
>
> int left(int i,int j,int k)
> {
> int x1=f[j].x-f[i].x;
> int x2=f[k].x-f[i].x;
> int y1=f[j].y-f[i].y;
> int y2=f[k].y-f[i].y;
> if((x1*y2-x2*y1)>0)
> return 1;
> else return 0;
> }
>
> double dis(int i,int j)//求两点间的距离
> {
> return sqrt((f[j].x-f[i].x)*(f[j].x-f[i].x)+((f[j].y-f[i].y)*(f[j].y-f[i].y)));
> }
> int main()
> {
> int i,j,k,n,l;
> int temp,top;
> int st[1002];
> double sum;
> while(scanf("%d%d",&n,&l)!=EOF)
> {
> k=0;
> for(i=0; i<n; i++)
> {
> scanf("%d%d",&f[i].x,&f[i].y);
> if(f[i].y<f[k].y||(f[i].y==f[k].y&&f[i].x<f[k].x))
> k=i;
> }
> temp=f[k].x;
> f[k].x=f[0].x;
> f[0].x=temp;
> temp=f[k].y;
> f[k].y=f[0].y;
> f[0].y=temp;
> for (i=1; i<n-1; i++)
> {
> k=i;
> for (j=i+1; j<n; j++)
> if( (multiply(f[j],f[k],f[0])>0)||
> ((multiply(f[j],f[k],f[0])==0)&&(dis(0,j)<dis(0,k))) )
> k=j;//k保存极角最小的那个点,或者相同距离原点最近
> tmp=f[i];
> f[i]=f[k];
> f[k]=tmp;
> }
> //printf("\n");
> //for(i=0; i<n; i++)
> // printf("%d %d\n",f[i].x,f[i].y);
> top=0;
> st[top++]=0;
> st[top++]=1;
> st[top++]=2;
>
> for(i=3; i<n;)
> {
> if(top<2) st[top++]=i++;
> else if(left(st[top-2],st[top-1],i))
> st[top++]=i++;
> else
> top--;
> }
> //for(i=0;i<top;i++)
> // printf("%d ",st[i]);
> sum=2*PI*l;
> for(i=0; i<top; i++)
> {
> if(i+1<top)
> sum+=dis(st[i],st[i+1]);
> else
> sum+=dis(0,st[top-1]);
> }
> printf("%d\n",(int)(sum+0.5));
> }
> return 0;
> }
>
>
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator