A 1141 PAT Ranking of Institutions (25分)
一、技术总结
二、参考代码
#include<iostream>
#include<vector>
#include<algorithm>
#include<set>
#include<map>
using namespace std;
struct node_i{
string name;
double all_score;
int num;
};
bool cmp(node_i a, node_i b){
if(a.all_score != b.all_score) return a.all_score > b.all_score;
else if(a.num != b.num) return a.num < b.num;
else return a.name < b.name;
}
int main(){
int n, index = 0;
vector<node_i> v;
map<string, int> f;
set<string> e_sch;
scanf("%d", &n);
for(int i = 0; i < n; i++){
string s, sch;
double sc;
cin >> s >> sc >> sch;
transform(sch.begin(), sch.end(), sch.begin(), ::tolower);
if(e_sch.find(sch) != e_sch.end()){
if(s[0] == 'B') v[f[sch]].all_score += sc/1.5;
else if(s[0] == 'A') v[f[sch]].all_score += sc;
else v[f[sch]].all_score += sc*1.5;
v[f[sch]].num++;
}else{
double temp_sc;
if(s[0] == 'B') temp_sc = sc/1.5;
else if(s[0] == 'A') temp_sc = sc;
else temp_sc = sc*1.5;
v.push_back(node_i{sch, temp_sc, 1});
e_sch.insert(sch);
f[sch] = index++;
}
}
for(int i = 0; i < v.size(); i++){
v[i].all_score = int(v[i].all_score);
}
sort(v.begin(), v.end(), cmp);
int rank;
cout << e_sch.size() << endl;
for(int i = 1; i <= v.size(); ++i){
if(i != 1 && v[i-1].all_score == v[i-2].all_score){
cout << rank << " " << v[i-1].name << " " << int(v[i-1].all_score) << " " << v[i-1].num << endl;
}else{
cout << i << " " << v[i-1].name << " " << int(v[i-1].all_score) << " " << v[i-1].num << endl;
rank = i;
}
}
return 0;
}
作者:睿晞
身处这个阶段的时候,一定要好好珍惜,这是我们唯一能做的,求学,钻研,为人,处事,交友……无一不是如此。
劝君莫惜金缕衣,劝君惜取少年时。花开堪折直须折,莫待无花空折枝。
曾有一个业界大牛说过这样一段话,送给大家:
“华人在计算机视觉领域的研究水平越来越高,这是非常振奋人心的事。我们中国错过了工业革命,错过了电气革命,信息革命也只是跟随状态。但人工智能的革命,我们跟世界上的领先国家是并肩往前跑的。能身处这个时代浪潮之中,做一番伟大的事业,经常激动的夜不能寐。”
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.