A 1137 Final Grading (25分)
一、技术总结
- 这一题主要是学会了使用v.push_back(node{id, score, -1, -1, 0})这种方式的赋值插入。
- 同时,也知道如果四舍五入向上取整,应该在int型,最后加上0.5。
- 还有对于string类型的输出,如果想使用printf进行输出,可以使用函数c_str()。
二、参考代码
#include<iostream>
#include<vector>
#include<algorithm>
#include<map>
using namespace std;
struct node{
string s;
int gp, gm, gf, g;
};
bool cmp(node a, node b){
if(a.g != b.g) return a.g > b.g;
else return a.s < b.s;
}
map<string, int> idx;
int main(){
int p, m, n, all_p = 1;
vector<node> v, ans;
cin >> p >> m >> n;
string id;
int score;
for(int i = 0; i < p; i++){
cin >> id >> score;
if(score >= 200){
idx[id] = all_p++;
v.push_back(node{id, score, -1, -1, 0});
}
}
for(int i = 0; i < m; i++){
cin >> id >> score;
if(idx[id] != 0) v[idx[id] - 1].gm = score;
}
for(int i = 0; i < n; i++){
cin >> id >> score;
if(idx[id] != 0){
int temp = idx[id] - 1;
v[temp].g = v[temp].gf = score;
if(v[temp].gf < v[temp].gm)
v[temp].g = int(v[temp].gm * 0.4 + v[temp].gf * 0.6 + 0.5);
}
}
for(int i = 0; i < v.size(); i++){
if(v[i].g >= 60) ans.push_back(v[i]);
}
sort(ans.begin(), ans.end(), cmp);
for(int i = 0; i < ans.size(); i++){
printf("%s %d %d %d %d\n", ans[i].s.c_str(), ans[i].gp, ans[i].gm, ans[i].gf, ans[i].g);
}
return 0;
}
作者:睿晞
身处这个阶段的时候,一定要好好珍惜,这是我们唯一能做的,求学,钻研,为人,处事,交友……无一不是如此。
劝君莫惜金缕衣,劝君惜取少年时。花开堪折直须折,莫待无花空折枝。
曾有一个业界大牛说过这样一段话,送给大家:
“华人在计算机视觉领域的研究水平越来越高,这是非常振奋人心的事。我们中国错过了工业革命,错过了电气革命,信息革命也只是跟随状态。但人工智能的革命,我们跟世界上的领先国家是并肩往前跑的。能身处这个时代浪潮之中,做一番伟大的事业,经常激动的夜不能寐。”
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.