牛客栗酱的文明2
可以写一下解题思路吗? 栗酱的文明2 C/C++交流题目解析此题需要统计每个人参加活动的总时间,并按照总时间从大到小排序输出对应的编号和总时间,如果总时间相同则按照编号从小到大输出。
首先,我们可以定义一个结构体来存储每个参与者的信息:
++
struct Player {
int no; // 编号
int time; // 总时间
};
然后,我们需要输入每个参与者的信息,并计算出他们的总时间。可以使用一个循环来输入所有参与者的信息,然后在循环中对每个参与者的总时间进行累加。代码如下:
++
int n;
cin >> n;
vector<Player> players(n);
// 输入每个参与者的信息
for (int i = 0; i < n; i++) {
cin >> players.no;
int m;
cin >> m;
players.time = 0;
for (int j = 0; j < m; j++) {
int start_hour, start_minute, end_hour, end_minute;
cin >> start_hour >> start_minute >> end_hour >> end_minute;
players.time += (end_hour * 60 + end_minute) - (start_hour * 60 + start_minute);
}
}
接下来,我们需要对参与者按照总时间从大到小排序。可以使用sort函数来实现,需要自定义比较函数作为参数。具体实现方法是,如果两个参与者的总时间不同,则按照总时间从大到小排序;如果总时间相同,则按照编号从小到大排序。代码如下:
++
bool cmp(const Player& a, const Player& b) {
if (a.time != b.time) {
return a.time > b.time;
}
return a.no < b.no;
}
sort(players.begin(), players.end(), cmp);
最后,我们可以按照题目要求输出排序后的结果。代码如下:
++
for (int i = 0; i < n; i++) {
cout << players.no << " " << players.time << endl;
}
这样就完成了本题的解答。
希望这些对你有所帮助!
球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}
isdkz 发表于 2023-9-30 19:40
题目描述:
牛客栗酱在玩文明2,他的文明有n个城市,每个城市都有不同的人口和粮食储备。现在他决定要建 ...
不是同一个题 Mike_python小 发表于 2023-9-30 19:41
栗酱的文明2 C/C++交流题目解析
此题需要统计每个人参加活动的总时间,并按照总时间从大到小排序输出对应 ...
佬,不是同一个题
问问题用图片的话,可以很好地屏蔽掉GPT.
同时建议你自己先去问GPT
https://c.binjie.fun 题目截图不完整,能再发一次吗 额外减小 发表于 2023-9-30 21:01
问问题用图片的话,可以很好地屏蔽掉GPT.
同时建议你自己先去问GPT
啥时候加一个OCR... 陶远航 发表于 2023-10-1 08:36
啥时候加一个OCR...
6.这样的话只好用音频问问题了。 额外减小 发表于 2023-10-1 12:55
6.这样的话只好用音频问问题了。
那就没人回答了 陶远航 发表于 2023-10-1 13:26
那就没人回答了
好吧。其实GPT有时候还是能正经回答问题的,没必要这么反对。
页:
[1]