poj 2153
Posted 一个_小菜鸟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了poj 2153相关的知识,希望对你有一定的参考价值。
题意:题目还是很简单的,就是求Li Ming 在班上的排名,而且成绩是相加的。
思路:用map就行。不然好像用qsort+二分也可以,不过我在那里碰到了一些状况,然后就没用这种方法了,简单的map就可以解决。
map是根据前面的类型来进行排序的,map是有序的。
1 Memory: 1220K Time: 1407MS 2 Language: C++ Result: Accepted 3 Source Code 4 #include <stdio.h> 5 #include <iostream> 6 #include <string.h> 7 #include <map> 8 #include <string> 9 10 using namespace std; 11 12 int main() 13 { 14 int n,m,ans; 15 char s[100]; 16 while(scanf("%d",&n)!=EOF) 17 { 18 getchar(); 19 map<string,int>mp; 20 map<string,int>:: iterator it; 21 for(int i=0;i<n;i++) 22 { 23 gets(s); 24 mp[s]=0; 25 } 26 scanf("%d",&m); 27 for(int i=0;i<m;i++) 28 { 29 for(int j=0,tmp=0;j<n;j++) 30 { 31 scanf("%d",&tmp); 32 getchar(); 33 gets(s); 34 mp[s]+=tmp; 35 } 36 ans=0; 37 for(it=mp.begin();it!=mp.end();it++) 38 if(it->second>mp["Li Ming"]) ans++; 39 printf("%d\n",ans+1); 40 } 41 } 42 return 0; 43 }
以上是关于poj 2153的主要内容,如果未能解决你的问题,请参考以下文章