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:原题16组数据全都在自己的机器上过了,但在poj上。。。。郁闷了

Posted by bochuan007 at 2010-06-03 10:18:47 on Problem 1002
In Reply To:原题16组数据全都在自己的机器上过了,但在poj上。。。。郁闷了 Posted by:bochuan007 at 2010-06-01 11:51:19
> 不用随机快排。。。。tle
> 用随机快排。。。。runtime error
> 
> 实在是不知该如何过了,大牛们来帮帮忙啊。。。。以下是代码。。。
> 
> 
> 
> #include<iostream>
> #include<math.h>
> #include<cstdlib>
> #include<time.h>
> #include<stdlib.h>
> 
> using namespace std;
> 
> int a[1000000],e;
> 
> void qsort(int l,int r)
> {
>     long int i,j,mid;
>     i=l; j=r; mid=a[l+rand()%(r-l+1)];
>     //mid=a[(l+r)/2]; 
>     do
>     {
>         while(a[i]<mid) i++;
>         while(a[j]>mid) j--;
>         if(i<=j)
>         {e=a[i]; a[i]=a[j]; a[j]=e; i++; j--;}
>     }while(i<=j);
>     if(j>l) qsort(l,j);
>     if(r>i) qsort(i,r);
> }
> 
> int main()
> {
> 	//ofstream ofile;
> 	//ifstream ifile;
>     long int n,i,j,save;
>     char c;
>     bool flag=true;
>     srand((unsigned)time(NULL));
>     //ifile.open("E.2.dat",ios_base::binary);
>     //ifile>>n;
>     cin>>n;
>     for(i=0;i<n;i++)
>     {
>         a[i]=0;
>         for(j=0;j<7;)
>         {
>             save=0;
>             //ifile>>c;
>             cin>>c;
>             if((c>='0'&&c<='9')||(c>='A'&&c<='Y'&&c!='Q'))
>             {
>                 j++;
>                 if(c=='1') save=1;
>                 else if(c=='2'||c=='A'||c=='B'||c=='C') save=2;
>                 else if(c=='3'||c=='D'||c=='E'||c=='F') save=3;
>                 else if(c=='4'||c=='G'||c=='H'||c=='I') save=4;
>                 else if(c=='5'||c=='J'||c=='K'||c=='L') save=5;
>                 else if(c=='6'||c=='M'||c=='N'||c=='O') save=6;
>                 else if(c=='7'||c=='P'||c=='R'||c=='S') save=7;
>                 else if(c=='8'||c=='T'||c=='U'||c=='V') save=8;
>                 else if(c=='9'||c=='W'||c=='X'||c=='Y') save=9;
>                 a[i]+=save*(int)exp((7-j)*log(10));
>             }
>         }
>     }
>     //ifile.close();
>     //ofile.open("out.dat",ios_base::out);
>     qsort(0,n-1);
>     save=1;
>     j=0;
>     for(i=1;i<n;i++)
>     {
>         if(a[i]==a[i-1]) save++;
>         else
>         {
>             if(save>1)
>             {
>                 flag=false;
>                 if(a[i-1]/10000==0) cout<<"000";
>                 else if(a[i-1]/100000==0) cout<<"00"<<a[i-1]/10000;
>                 else if(a[i-1]/1000000==0) cout<<'0'<<a[i-1]/10000;
>                 else cout<<a[i-1]/10000;
>                 cout<<'-';
>                 if(a[i-1]%10000==0) cout<<"0000";
>                 else if((a[i-1]%10000)/10==0) cout<<"000"<<a[i-1]%10000;
>                 else if((a[i-1]%10000)/100==0) cout<<"00"<<a[i-1]%10000;
>                 else if((a[i-1]%10000)/1000==0) cout<<"0"<<a[i-1]%10000;
>                 else cout<<a[i-1]%10000;
>                 cout<<' '<<save<<endl;
>              }
>             save=1;
>         }
>         if(i==n-1&&save>1)
>         {
>                 flag=false;
>                 if(a[i-1]/10000==0) cout<<"000";
>                 else if(a[i-1]/100000==0) cout<<"00"<<a[i-1]/10000;
>                 else if(a[i-1]/1000000==0) cout<<'0'<<a[i-1]/10000;
>                 else cout<<a[i-1]/10000;
>                 cout<<'-';
>                 if(a[i-1]%10000==0) cout<<"0000";
>                 else if((a[i-1]%10000)/10==0) cout<<"000"<<a[i-1]%10000;
>                 else if((a[i-1]%10000)/100==0) cout<<"00"<<a[i-1]%10000;
>                 else if((a[i-1]%10000)/1000==0) cout<<"0"<<a[i-1]%10000;
>                 else cout<<a[i-1]%10000;
>                 cout<<' '<<save<<endl;            
>         }
>     }
>     if(flag) cout<<"No duplicates.";
>     //ofile.close();
>     return(0);
> } 



貌似关键在于产生随机因子的语句:
    srand((unsigned)time(NULL));
只要把这句删了就不会runtime error。。。。但是随机快排不用这句就没法实现啊。。。。

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