| ||||||||||
| 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 | |||||||||
应该是1456,我NlongN的算法为什么还会超时,哪位大虾帮忙看看程序,不胜感激1445,我NlongN的算法为什么还会超时,哪位大虾帮帮看看程序
#include<iostream.h>
#define MAX 10001
void saixuan(int b[MAX],int a[MAX],int s,int m)
{int t,r,i;
t=b[s];r=a[s];
for(i=2*s;i<m+1;i=i*2)
{if(i<m)
if(b[i]<b[i+1]||(b[i]==b[i+1]&&a[i]>a[i+1]))
i++;
if(t>=b[i])
{ if(t>b[i])
break;
else
if(r>a[i])
{b[s]=b[i];
a[s]=a[i];
s=i;
}
else
break;
}
b[s]=b[i];
a[s]=a[i];
s=i;
}
b[s]=t;
a[s]=r;
}
void heapsort(int b[MAX],int a[MAX],int n)
{int k;
void saixuan(int b[MAX],int a[MAX],int s,int m);
for(int i=n/2;i>0;i--)
saixuan(b,a,i,n);
for(int j=n;j>1;j--)
{k=b[1];b[1]=b[j];b[j]=k;
k=a[1];a[1]=a[j];a[j]=k;
saixuan(b,a,1,j-1);
}
}
void main()
{int b[MAX],a[MAX],count,n,i;
long int max;
while(1)
{ max=0;
count=0;
cin>>n;
for(i=1;i<n+1;i++)
cin>>a[i]>>b[i];
heapsort(b,a,n);
for(i=1;i<n+1;i++)
if(count<b[i])
{count=count+1;
max=max+a[i];
}
cout<<max<<endl;
}
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator