工农区网站建设,东莞seo整站优化火速,中国十大流量网站,网络规划设计师是副高昨天做了一道简单但很麻烦的题,我只能想到结构体,并用了STL的sort方法解决了它.不过从中有许多细节问题. 题目: Problem Description Lcy wanted to choose 50 ACMers from m players to join HDU-ACM team. He made n competitions , and now is your task to make the rankli…昨天做了一道简单但很麻烦的题,我只能想到结构体,并用了STL的sort方法解决了它.不过从中有许多细节问题. 题目: Problem Description Lcy wanted to choose 50 ACMers from m players to join HDU-ACM team. He made n competitions , and now is your task to make the ranklist. Here’re some instructions : Effective score : the sum of the best n-2 competitions’ score. One’s score in one competition : number of problems he(or she) solved divided the sum of problems all players solved. The ranklist is made , of course , by the effective score , what if some players have the same score ?Follow these rules : girls always come first , same again and younger first , again ? In lexicographic order. Input For each case , two integers in the first line : n (3 n 10)and m(m1000) The next m lines are someone’s information : name , sex (FM), grade and n integer numbers which means one’s number of solved problem in the ith competition. Output Output the first fifty players in order . Output all if m50. Sample Input 3 2
WXL F 08 3 4 5
HH M 08 3 4 5 Sample Output WXL
HH 代码如下: Code#includeiostream#includealgorithm#includestringusing namespace std;bool dic(char *a, char *b){ int p; pstrcmp(a,b); if(p0) return false; else return true;}typedef struct{ char name[21]; char sex; int grade; float score; int s[11];}node;node a[1001];bool comp(node a, node b){ if(a.score ! b.score) return a.scoreb.score; else { if(a.sex ! b.sex) return a.sexb.sex; else if(a.grade ! b.grade) return a.gradeb.grade; else return dic(a.name,b.name); }}int main(){ int n,m,i,j,k; float b[11],p,f[11]; while(scanf(%d%d,n,m)!EOF) { for(i0; im; i) { getchar(); scanf(%s %c %d,a[i].name,a[i].sex,a[i].grade); for(j0; jn; j) { scanf(%d,a[i].s[j]); } } for(i0; in; i) { b[i]0; for(j0; jm; j) { b[i]a[j].s[i]; } } for(i0; im; i) { a[i].score0; for(j0; jn; j) { p(float)a[i].s[j]/b[j]; f[j]p; } sort(f,fn); for(kn-1; k1; k--) { a[i].scoref[k]; } } sort(a,am,comp); for(i0; im; i) { couta[i].nameendl; if(i49)break; } } return 0;} 转载于:https://www.cnblogs.com/chenjunyu/archive/2009/05/04/1448920.html