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:有无大佬帮忙看看这道题的代码为啥一直WA,poj1328In Reply To:有无大佬帮忙看看这道题的代码为啥一直WA Posted by:335233577 at 2021-10-20 22:27:01 > #include <iostream> > #include <cmath> > #include <algorithm> > #include <stdlib.h> > > using namespace std; > > typedef struct > { > int x; > int y; > }Island; > > typedef struct > { > float a; > float b; > }Inst;//区间值,左端点为a,右端点为b > > int num=0; > int visit[1000];//每个坐标对应的区间访问前为0,访问后为1 > Inst m[1000]; > float xio[1000]={0.0}; > > int cmp(const void *a,const void *b) > { > return ((*(Inst *)a).a-(*(Inst *)b).a); > } > > int solution(int n,float d,Island *is) > { > num=1; > if(n>=1&&n<=1000) > { > int i,j=0,index=0,cu=0; > float dx,ma; > if(d<=0) > { > num=-1; > return 1; > } > for(i=0;i<n;i++) > { > if(is[i].y>d||is[i].y<0) > { > num=-1; > return 1; > } > } > for(i=0;i<n;i++) > { > dx=(float)pow((double)(d*d-is[i].y*is[i].y),0.5); > m[i].a=is[i].x-dx; > m[i].b=is[i].x+dx; > } > qsort(m,n,sizeof(Inst),cmp); > for(i=0;i<n;i++) > { > visit[i]=0; > } > /*while(cu<n)//还有没遍历到的区间继续循环 > { > xio[index]=m[cu].b; > visit[cu]=1; > num++; > index++; > while(xio[index-1]>=m[cu+1].a) > { > visit[cu+1]=1; > if(xio[index-1]>m[cu+1].b) > { > xio[--index]=m[cu+1].b; > index++; > } > cu++; > } > cu++; > for(j=0;j<n;j++)//判断是否遍历完所有区间 > { > if(visit[j]==0) > { > cu=j; > break; > } > } > }*/ > ma=m[0].b; > for(i=1;i<n;i++) > { > if(m[i].a>ma) > { > num++; > ma=m[i].b; > } > else if(m[i].b<ma) > { > ma=m[i].b; > } > } > return 1; > } > else if(n==0&&d==0) > { > return 0; > } > else > { > num=-1; > return 1; > } > } > > int main() > { > ios::sync_with_stdio(false); > int n,d,i,index=1; > Island is[1000]; > cin>>n; > cin>>d; > for(i=0;i<n;i++) > { > cin>>is[i].x; > cin>>is[i].y; > } > while(solution(n,d,is)) > { > cout<<"Case "<<index++<<": "<<num<<endl; > cin>>n; > cin>>d; > for(i=0;i<n;i++) > { > cin>>is[i].x; > cin>>is[i].y; > } > } > return 0; > } > Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator