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:ByteChen at 2007-10-14 11:22:49 > #include <stdio.h> > #include <stdlib.h> > > #define SIZE 800000 > > struct info{ > int q; > long end; > } order[SIZE]; > > int heap[SIZE]; > void insert(int heap[],long n,int x); > int Delete(int heap[],long n); > > int comp(const void *p, const void *q); > > int main() > { > long m,i,N,end,max; > > while(scanf("%ld",&N) == 1) > { > for(i = 0; i < N; i++) > scanf("%d %ld",&order[i].q,&order[i].end); > /* 以end为标准对order由小到大排序 */ > qsort((struct info*)order,N,sizeof(order[0]),comp); > > end = max = m = 0; > for(i = 0; i < N; i++) > { > if(order[i].q > order[i].end) > continue; > end += order[i].q; > insert(heap,++m,order[i].q); /* 将order[i].q编入最大堆中 */ > max++; > if(order[i].end < end) /* 成立则取出存入的最大q,减去 */ > { > end -= Delete(heap,m); > max--; > m--; > } > } > printf("%ld\n",max); > } > return 0; > } > > int comp(const void *p, const void *q) > { > struct info px = * (struct info *)p; > struct info qx = * (struct info *)q; > return px.end - qx.end; > } > /* 将x编入最大堆中,x加入后堆中有n个节点 */ > void insert(int heap[],long n,int x) > { > long i,j,temp; > > i = n; > j = n / 2; > heap[n] = x; > while(j >= 1 && heap[j] < x) > { > temp = heap[j]; > heap[j] = heap[i]; > heap[i] = temp; > i = j; > j = i / 2; > } > } > /* 返回大小为n的堆的根节点,并且维护堆 */ > int Delete(int heap[],long n) > { > long i,j,max,temp; > > max = heap[1]; > heap[1] = heap[n]; > > i = 1; > j = 2 * i; > while(j < n - 1 && (heap[i] < heap[j] || heap[i] < heap[j+1])) > { > if(heap[j] >= heap[j+1]) > { > temp = heap[i]; > heap[i] = heap[j]; > heap[j] = temp; > } > else > { > temp = heap[i]; > heap[i] = heap[j+1]; > heap[j+1] = temp; > } > i = j; > j = 2 * i; > } > return max; > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator