排序
eeeeeeeeethan
这个作者很懒,什么都没留下…
展开
-
1095 Cars on Campus (30分)
用结构体保存每条记录的信息用从00:00:00开始到当前逝去的秒数来衡量时间的先后对所有记录进行排序用vector数组保存每辆车的有效记录对每辆车的停车时长进行计算,同时记录停得最久的车通过队列对校园内车数进行统计#include<iostream>#include<algorithm>#include<vector>#include&...原创 2020-01-21 11:24:25 · 110 阅读 · 0 评论 -
1075 PAT Judge (25分)
常规思路,注意检查数组大小大于给出范围。注意点:一题都没提交的、没有一个提交通过编译器的不进入排序没提交过的题目输出-,提交过得零分,或未通过编译器输出0用-2表示从未提交,用-1表示提交过但是没有通过编译器。#include<algorithm>#include<iostream>#include<vector>#include<cmath>using namespace std;struct node { int rank, ..原创 2020-05-13 00:18:43 · 98 阅读 · 0 评论 -
1080 Graduate Admission (30分)
注意以下段代码:if (app[id2index[last]].rank == a.rank) { school[c].admitted.push_back(a.id); break;}如果学校保存的是学生的下标,那么最后输出前对学生的id排序就不方便;如果学校保存的是学生的id,这时当判断录取的最后一名和当前学生名次时,难以根据id找到学生的下标;学校的成员变量可改为vector<Applicant> admitted,这时就可以得到学生的所有信息,或者如上用unordere.原创 2020-05-13 00:00:17 · 135 阅读 · 0 评论 -
1062 Talent and Virtue (25分)
#include<iostream>#include<algorithm>#include<vector>using namespace std;int total, lowerBound, higherBound;struct node { int id, talent, virtue, total;};int getType(node a...原创 2020-04-13 17:10:18 · 102 阅读 · 0 评论 -
1022 Digital Library (30分)
为每个查询方式设置一个散列索引unordered_map<string, set<int> > index#include<iostream>#include<string>#include<algorithm>#include<unordered_map>#include<set>using na...原创 2020-03-09 16:18:55 · 83 阅读 · 0 评论 -
1012 The Best Rank (25分)
用结构体记录学生各科成绩、各科排名。不应根据每个查询对表进行排序,因为查询量较大。处理查询前,先根据每个成绩排序一次,然后记录相应的排名信息。用unordered_map记录id到表下标的映射,方便查找相应学生。可以进一步抽取公共代码,避免排序代码的重复。#include<cstdio>#include<algorithm>#include<ve...原创 2020-03-03 15:13:41 · 134 阅读 · 0 评论 -
1153 Decode Registration Card of PAT (25分)
先从卡号提取信息,再根据相应信息筛选。尽量用scanf和printf进行输入输出。#include<iostream>#include<string>#include<algorithm>#include<vector>#include<unordered_map>using namespace std;struc...原创 2020-02-10 15:04:13 · 87 阅读 · 0 评论 -
1141 PAT Ranking of Institutions (25分)
注意审题:TWS is the total weighted score which is defined to be the integer part of ScoreB/1.5 + ScoreA + ScoreT*1.5用double存每个学校的总加权分数,最后根据这个分数的整数部分对所有数据进行排序即可。#include<string>#include<iost...原创 2020-02-07 15:09:14 · 83 阅读 · 0 评论 -
1129 Recommendation System
题意:对于每个数字,统计排在它前面的各个数字出现的次数,按出现次数的多少输出。思路:设置一个结构体,保存一个数的值、这个数出现的次数。利用set自动有序这一特性(set底层为红黑树),我们可以让set自动对这些结构体进行排序,只需在结构体中描述结构体的排序规则:struct node { int val, count; friend bool operator < (node n1...原创 2020-02-04 19:53:13 · 134 阅读 · 0 评论 -
1098 Insertion or Heap Sort (25分)
堆排序:先建堆,每次从堆顶拿出一个元素,放到堆的末尾,然后调整堆的大小(-1),将调整大小后的堆的最后一个元素放到堆顶,然后将该堆顶元素下滤,再次将数组调整为堆。#include<cstdio>#include<vector>#include<algorithm>using namespace std;const int MIN = 0x800000...原创 2020-01-22 12:42:14 · 178 阅读 · 0 评论 -
1089 Insert or Merge (25分)
#include<cstdio>#include<vector>#include<algorithm>using namespace std;int n;vector<int> initial;vector<int> partial;bool compare(vector<int> v1, vector<...原创 2020-01-20 16:01:15 · 98 阅读 · 0 评论 -
1029 Median (25分)
#include<cstdio>#include<algorithm>#include<cmath>using namespace std;long long r[200002];const long long inf = 0x7fffffffffffffff;int main() { int m, n; scanf("%d", &m)...原创 2020-01-08 14:33:17 · 131 阅读 · 0 评论 -
1016 Phone Bills (25分)
思路为了统计每个人的账单,对于给出的数据,可以先按名字排序,名字相同时再按时间排序。给记录设计一个结构体,里面应该包含每条记录给出的所有信息。为了方便根据时间对数据进行排序,添加成员变量time,time表示从当月1日0时开始到该条记录的时刻,中间所逝去的时间。由题意可知有效记录是指:排序后两条相邻的记录,其中第一条状态为on-line,第二条状态为off-line。为了统计每个人...原创 2020-01-10 15:41:09 · 71 阅读 · 0 评论 -
1055 The World's Richest (25分)
错误示例对全部数据先按年龄排序,查询时将要求的年龄段内的所有人放到一个优先队列中,再根据给定的输出人数,从优先队列中取出排在优先队列队首的人。#include<cstdio>#include<algorithm>#include<cstring>#include<queue>using namespace std;struct n...原创 2020-01-12 14:15:39 · 93 阅读 · 0 评论