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啊~?谁有测试数据的啊?In Reply To:谁救救我啊~为什么总是WA啊~?谁有测试数据的啊? Posted by:stchou at 2009-12-19 00:33:55 > #include<stdio.h> > void min_heappify(long a[],long i,int n) > { > long l,r,min,tmp; > l=i*2; r=i*2+1; > if (l<=n&&a[l]<a[i]) > min=l; > else > min=i; > if (r<=n&&a[r]<a[min]) > min=r; > if (min!=i) > { > tmp=a[min]; > a[min]=a[i]; > a[i]=tmp; > min_heappify(a,min,n); > } > } > void build_min_heap(long a[],long n) > { > long i; > for (i=n/2;i>=1;--i) > min_heappify(a,i,n); > } > main() > { > long a[2000],n,i,min; > __int64 sum=0; > scanf("%ld",&n); > for (i=1;i<=n;i++) > scanf("%ld",&a[i]); > build_min_heap(a,n); > for(i=1;i<n-1;i++) > { > min=2; > if (a[2]>a[3]) min=3; > sum+=a[1]+a[min]; > a[min]=a[1]+a[min]; > a[1]=a[n-i+1]; > min_heappify(a,1,n-i); > } > sum+=a[1]+a[2]; > printf("%I64d",sum); > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator