1 条题解
-
0
自动搬运
来自洛谷,原作者为

Maxmilite
**搬运于
2025-08-24 21:14:21,当前版本为作者最后更新于2022-11-27 13:42:21,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
B3680 [语言月赛202211] BAN-PICK 题解
Source & Knowledge
2022 年 11 月语言月赛,由洛谷网校入门计划/基础计划提供。
本题考察对字符串、结构体等的应用。
文字题解
题目大意
给定 组角色数据,每组数据包括角色名称、所属阵营、选手熟练度。
阵营分为求生者和监管者两类。依次输出监管者阵营中熟练度排名第三的角色名称,以及求生者阵营中熟练度排名第六至第九名的角色名称。
解析
我们使用一个结构体
node存储角色的名称和熟练度。struct node { string name; long long val; } s[100005], h[100005];至于阵营分类问题,我们可以在读入的时候解决,代码如下:
int cntH = 0, cntS = 0; cin >> n >> m; for (int i = 1; i <= n + m; ++i) { string name, v; long long val; cin >> name >> v >> val; if (v == "H") { ++cntH; h[cntH].name = name; h[cntH].val = val; } else { ++cntS; s[cntS].name = name; s[cntS].val = val; } }这之后,我们以
val为关键字由大到小对s和h数组排序,按照规则输出对应的角色名称即可。int cmp(node x, node y) { return x.val > y.val; } sort(s + 1, s + cntS + 1, cmp); sort(h + 1, h + cntH + 1, cmp); cout << h[3].name << endl; for (int i = 6; i <= 9; ++i) { cout << s[i].name << endl; }视频题解
完整代码请在视频中查看。
- 1
信息
- ID
- 8109
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 2
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者