
排序
eeeeeeeeethan
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
1095 Cars on Campus (30分)
用结构体保存每条记录的信息 用从00:00:00开始到当前逝去的秒数来衡量时间的先后 对所有记录进行排序 用vector数组保存每辆车的有效记录 对每辆车的停车时长进行计算,同时记录停得最久的车 通过队列对校园内车数进行统计 #include<iostream> #include<algorithm> #include<vector> #include&...原创 2020-01-21 11:24:25 · 142 阅读 · 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 · 130 阅读 · 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 · 165 阅读 · 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 · 129 阅读 · 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 · 115 阅读 · 0 评论 -
1012 The Best Rank (25分)
用结构体记录学生各科成绩、各科排名。 不应根据每个查询对表进行排序,因为查询量较大。 处理查询前,先根据每个成绩排序一次,然后记录相应的排名信息。 用unordered_map记录id到表下标的映射,方便查找相应学生。 可以进一步抽取公共代码,避免排序代码的重复。 #include<cstdio> #include<algorithm> #include<ve...原创 2020-03-03 15:13:41 · 160 阅读 · 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 · 115 阅读 · 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 · 109 阅读 · 0 评论 -
1129 Recommendation System
题意:对于每个数字,统计排在它前面的各个数字出现的次数,按出现次数的多少输出。 思路:设置一个结构体,保存一个数的值、这个数出现的次数。利用set自动有序这一特性(set底层为红黑树),我们可以让set自动对这些结构体进行排序,只需在结构体中描述结构体的排序规则: struct node { int val, count; friend bool operator < (node n1...原创 2020-02-04 19:53:13 · 171 阅读 · 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 · 205 阅读 · 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 · 121 阅读 · 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 · 160 阅读 · 0 评论 -
1016 Phone Bills (25分)
思路 为了统计每个人的账单,对于给出的数据,可以先按名字排序,名字相同时再按时间排序。 给记录设计一个结构体,里面应该包含每条记录给出的所有信息。 为了方便根据时间对数据进行排序,添加成员变量time,time表示从当月1日0时开始到该条记录的时刻,中间所逝去的时间。 由题意可知有效记录是指:排序后两条相邻的记录,其中第一条状态为on-line,第二条状态为off-line。 为了统计每个人...原创 2020-01-10 15:41:09 · 92 阅读 · 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 · 115 阅读 · 0 评论