Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

Re:有无大佬帮忙看看这道题的代码为啥一直WA,poj1328

Posted by 335233577 at 2021-10-20 22:27:50
In 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:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator