数据结构
梦想成为保安
这个作者很懒,什么都没留下…
展开
-
1015 德才论 (25分) C++ PAT (Basic Level) Practice (中文)
这个题那么一丢丢绕的慌,大概意思就是学生一共分为5类 德分、才分 >= H 是第一梯队 德分 >= H、H > 才分 >= L 是第二梯队 H >= 德分 >= 才分 >= L 是第三梯队 其他的就是第四梯队 按照题意 ,在读入过程中,只有当德分和才分都 >= L 才进行下一步判断。 学生信息用结构体存储,总体用vector进行存储。 读入数据完成后,进行排序,注意正确书写sort中的cmp函数。 #include<iostream> #inc原创 2020-08-12 18:43:43 · 214 阅读 · 0 评论 -
1045 快速排序 (25分)C++ PAT (Basic Level) Practice (中文)
一个元素能不能当主元的条件是: 左边:元素的最大值要小于当前值 ; 右边 元素的最小值要大于当前值 也就是说 当前元素 a[i] 必须是 arr[0]-arr[i]的最大值、arr[i]-arr[N-1]的最小值. 维护好两个数组:左侧最大值、右侧最小值 依次比较输出 并不需要对num数组进行排序 #include<iostream> #include<algorithm> using namespace std; int main(void) { int N; sca原创 2020-08-11 19:38:07 · 182 阅读 · 0 评论 -
1080 MOOC期终成绩 (25分) C++ PAT (Basic Level) Practice (中文)
利用unordered_map存储学生成绩信息,vector存储学生姓名 。 通过输入的各项成绩进行筛选,不符合的直接跳过,最后进行排序输出(对vector进行排序,比较项为map中存储的学生成绩信息)。 #include<iostream> #include<string> #include<vector> #include<unordered_map> #include<algorithm> using namespace std; str原创 2020-08-11 10:19:34 · 135 阅读 · 0 评论 -
7-47 打印选课学生名单 (25分)C++
假设全校有最多40000名学生和最多2500门课程。现给出每个学生的选课清单,要求输出每门课的选课学生名单。 输入格式: 输入的第一行是两个正整数:N(≤40000),为全校学生总数;K(≤2500),为总课程数。此后N行,每行包括一个学生姓名(3个大写英文字母+1位数字)、一个正整数C(≤20)代表该生所选的课程门数、随后是C个课程编号。简单起见,课程从1到K编号。 输出格式: 顺序输出课程1到K的选课学生名单。格式为:对每一门课,首先在一行中输出课程编号和选课学生总数(之间用空格分隔),之后在第二行按字原创 2020-08-04 09:30:29 · 1206 阅读 · 1 评论 -
7-49 打印学生选课清单 (25分) C++
unordered_map配上vector构成散列,map的key为学生姓名,val为学生选课的数组。 最开始用map,最后一个测试点勉勉强强没超时:384ms;用了unordered——map情况稍微好点:271ms。 另外如果不排序的话测试点2、5会过不去,我在这两个点学么了半天也没闹明白为啥不排序过不去(来自菜鸡的大写问号)…… #include<iostream> #include<unordered_map> #include<vector> #include原创 2020-08-10 21:03:46 · 345 阅读 · 0 评论 -
7-37 模拟EXCEL排序 (25分) c++
用vector配合string进行存储,函数指针pfun根据flag值指向对应的比较函数,排序后输出。 #include<iostream> #include<vector> #include<algorithm> #include<string> using namespace std; struct student { string num; string name; int score = 0; }; vector<student&g原创 2020-08-10 10:36:18 · 444 阅读 · 0 评论