| ||||||||||
| 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 | |||||||||
哪位牛B人可以have a look!彧者给个代码来参考一下!#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int partition(vector<int>&x,vector<int>&y,int m,int n)
{
int v=y[m],u=x[m];
while(m<n)
{ while(m<n&&y[n]>=v)--n;
y[m]=y[n];x[m]=x[n];
while(m<n&&y[m]<=v)++m;
y[n]=y[m];x[n]=x[m];
}
y[m]=v;x[m]=u;
return m;
}
void quicksort(vector<int>&x,vector<int>&y,int p,int q)
{ int j;
if(p<q)
{j=partition(x,y,p,q);
quicksort(x,y,p,j-1);
quicksort(x,y,j+1,q);
}
}
void main()
{ vector<int>x,y;
int n,mc,xi,yi,sum,oneturn,shu;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>mc;
for(int j=0;j<mc;j++)
{ cin>>xi>>yi;
x.push_back(xi);
y.push_back(yi);
}
quicksort(x,y,0,y.size()-1);
sum=0;
while(1)
{ oneturn=0;shu=1;
for(int k=0;k<mc;k++)
if(x[k]!=0)
{
if(shu==1)
{j=k;
x[k]=0;
shu=0;
oneturn++;
}
else
{ if(x[k]>=x[j])
x[k]=0;
j=k;
oneturn++;
}
}
sum+=oneturn;
if(shu==1)
break;
}
cout<<sum<<endl;
}
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator