ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2022.1.24开始记录自己的acm点滴#HDU-1236

2022-01-24 18:04:21  阅读:137  来源: 互联网

标签:24 HDU return temp int sum 1236 ido num


2022-01-24

一个什么也不会的人,跟着北理2020年冬训视频做题:2020 BIT冬训

A-排名

 

思路:按照题意模拟出过程,初步运用c++语言,主要解决点在于 每个学生为一个{string,int}的struct,sort函数排序的比较函数cmp自己定义为:

int cmp(students a, students b)
{
if (a.sum != b.sum)
   return a.sum > b.sum;
else
   return a.num.compare(b.num)<0;
}

其中string的比较函数使用,return的形式让我有所领悟。

题解:

#include<iostream>
#include<string>
#include<algorithm>
#include<vector>
using namespace std;
struct students {
string num;
int sum;
};
int cmp(students a, students b)
{
if (a.sum != b.sum)
return a.sum > b.sum;
else
return a.num.compare(b.num)<0;
}
int main(void)
{
students temp;
int tishu_ido,tihao_ido;
int timu[11];
int N, M, G;
while (cin >> N)//读入第一个数
{
vector<students>stu;
if (N == 0)
return 0;//判断是否结束
cin >> M >> G;

for (int i = 1;i <= M;i++)
cin >> timu[i];//读入当前组的各个题目分

for (int i = 0;i < N;i++)
{
temp.sum = 0;
cin >> temp.num;
cin >> tishu_ido;
for (int j = 0;j < tishu_ido;j++)
{
cin >> tihao_ido;
temp.sum += timu[tihao_ido];
}//获取单个学生总分

if (temp.sum >= G)
stu.push_back(temp);
}//得到单组学生的数据

sort(stu.begin(), stu.end(), cmp);//排序
cout << stu.size() << endl;

for (int i = 0;i < stu.size();i++)
cout <<stu[i].num << ' ' << stu[i].sum << endl;//输出
}
return 0;
}

标签:24,HDU,return,temp,int,sum,1236,ido,num
来源: https://www.cnblogs.com/Tiachi/p/15840386.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有