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 |
讨论讨论吧!AC了的人给点提示好吗??这道题看了看其他资料,说要用二叉树来做,不用二叉树难道就不行吗??那位高手给点提示!! 以下是我写的代码,没有涉及二叉树,但是很遗憾,超时,在自己的机器上测了数据是对的,帮帮忙,看看可以哪里可以修改以下,提高下效率 #include<stdio.h> #include<string.h> #include<math.h> struct tree { char name[30]; float per; }; struct tree str[10000]; int b[10000],t; int f(char *s) { int i; for(i=0;i<t;i++) { if(strcmp(str[i].name,s)==0) return i; } strcpy(str[t].name,s); t++; return t-1; } void main() { char s[30],str1[30]; int i,n,j,count=0; float k; memset(b,0,sizeof(b)); t=0; while(gets(s)!=NULL) { count++; n=f(s); b[n]++; } for(i=0;i<t;i++) { str[i].per=b[i]*1.0/count; } for(i=0;i<t-1;i++) { for(j=i;j<t;j++) { if(strcmp(str[i].name,str[j].name)>0) { strcpy(str1,str[i].name); strcpy(str[i].name,str[j].name); strcpy(str[j].name,str1); k=str[i].per; str[i].per=str[j].per; str[j].per=k; } } } for(i=0;i<t;i++) printf("%s %.4f\n",str[i].name,str[i].per*100); } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator