1025 PAT Ranking(25分)

编程入门 行业动态 更新时间:2024-10-12 05:45:03

1025 <a href=https://www.elefans.com/category/jswz/34/1769282.html style=PAT Ranking(25分)"/>

1025 PAT Ranking(25分)

题目翻译:

简单来说,就是给你几个数组,分别排序后得到局部排名,最后再合在一起进行全局排名

题解思路:

先对局部进行排名(始终存放到一个数组中,否则后续要合并的话比较麻烦),然后总体排名。

代码:

#include<bits/stdc++.h>
using namespace std;
int N;struct node {string ID;int fr = 1, ln, lr = 1, s = 0;
};bool comp(node n1, node n2)
{if (n1.s > n2.s) return true;else if (n1.s == n2.s)return n1.ID < n2.ID;else return false;
}int main()
{vector<node> v;int pos = 0;cin >> N;for (int i = 0;i < N;i++){int K;cin >> K;while (K--){node temp;cin >> temp.ID >> temp.s;temp.ln = i + 1;v.push_back(temp);}sort(v.begin() + pos, v.end(), comp);v[pos].lr = 1;for (int i = pos + 1;i < v.size();i++){if (v[i].s == v[i - 1].s)v[i].lr = v[i - 1].lr;elsev[i].lr = i - pos + 1;}pos = v.size();}sort(v.begin(), v.end(), comp);v[0].fr = 1;for (int i = 1;i < v.size();i++){if (v[i].s == v[i - 1].s)v[i].fr = v[i - 1].fr;elsev[i].fr = i + 1;}cout << v.size() << endl;for (auto i : v)cout << i.ID << " " << i.fr << " " << i.ln << " " << i.lr << endl;
}

坑点:

更多推荐

1025 PAT Ranking(25分)

本文发布于:2023-11-17 00:10:29,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1636030.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:PAT   Ranking

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!