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 |
复杂度只有o(n*lgn*m) 怎么会超时呢?求大牛指点迷津#include<stdio.h> #include<string.h> #include<stdlib.h> struct banji { int score; char name[31]; }; int cmp1(const void *a,const void *b) { banji *p=(banji *)a,*q=(banji *)b; return strcmp(p->name,q->name); } int cmp2(const void *a,const void *b) { banji *p=(banji *)a,*q=(banji *)b; return q->score-p->score; } banji a[20001],b[20001]; int main() { int i,j,n,m,k; scanf("%d",&n); for(i=0;i<n;i++) scanf("%s",a[i].name); scanf("%d",&m); for(i=0;i<m;i++) { qsort(a,n,sizeof(banji),cmp1); for(j=0;j<n;j++) scanf("%d %s",&b[j].score,b[j].name); qsort(b,n,sizeof(banji),cmp1); for(j=0;j<n;j++) a[j].score=a[j].score+b[j].score; qsort(a,n,sizeof(banji),cmp2); for(j=0;j<n;j++) { if(strcmp(a[j].name,"JLY")==0) {k=a[j].score; break; } } for(j=0;j<n;j++) {if(a[j].score>k)continue;else break;} printf("%d\n",j+1); } return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator