![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
sort
Datrilla
C语言拷贝人才
展开
-
1016. Phone Bills (25)
这里月份的测试数据应当没有跨月份的。所以sort里面的比较函数就没有比较月份的了。sort按名字字母顺序、时间排序;接着就看看是不是同一个人。然后最接近的两个记录是不是一个on一个off,如果是,说明通话成功计费,否则不计费这里的头文件比较多#include<string> 这个可以直接一个string idnow ,把char/char* PB[index].id赋给它idnow ,可以string 直接和char/char*比较;#include<string.h> 用于strcmp(cha原创 2015-07-28 11:29:22 · 1418 阅读 · 0 评论 -
1064. Complete Binary Search Tree (30)
N个结点,无序;要求获得 左<中<=右的完全二叉树首先输入sort排序非降#include<algorithm>接着buildCBTreeDFS(CompleteBinarySearchTree*CBT, int STar ,int END_1)构建好完全二叉树,当前数组序号从STar到END_1;这里有len=END_1-STar+1个元素,难点一int GETrightCount( int len)根据长度len获得这些子结点 组建成 子完全二叉树 右边的结点个数 并返回;然后通过END原创 2015-08-03 00:32:29 · 719 阅读 · 0 评论 -
1070. Mooncake (25)
输入N中月饼;市场需求Needtons吨数;这一行给出各种月饼的 预计产量;这一行给出各种月饼的 总销售价求正好满足市场需求且利润最大;显然总价/产量=单价,根据单价排序;单价高的先满足,必然在满足市场要求的情况下,总利润最大化原创 2015-08-14 12:24:27 · 707 阅读 · 0 评论 -
1075. PAT Judge (25)
输入:一共有N个人(人的编号00001~XXXX PS:XXXX=N) 有K道题目 M次提交的K道题按编号(1~K)给出满分接着M行 提交人编号 题目编号 得分(-1:提交后编译错误 0~对应的满分:编译成功,结果错误/部分正确/AC ) ……输出:第几名 用户名 总分 第一题分数 第二题分数 ……最后一道题分数 ……要求根据获得的总分排序输出(PS:提交过一次或以上 且 编译成功 的才在输出范围。 没有提交过、提交的题目都编译错误不在原创 2015-08-16 22:36:45 · 1063 阅读 · 0 评论 -
1033. To Fill or Not to Fill (25)
油箱容量Cmax 要到距离的D的地方 每单位油能行Davg单位 这一路上有N个加油站油单价 距离起始点……一开始没有油,所以距离出发点 0 一定要有加油站;sort按照由近到远距离排序;排除出发点没有加油站以后;对于当前站点index来说,如果在有油~满油的范围内,有站点,在这些加油站中 如果存在单价比当前少的站点中取最靠近当前站index的,那么当就只要加油到能够到达这一站choiceIndex就行; 否则在单价比当前多的站点原创 2015-08-03 23:45:26 · 680 阅读 · 0 评论 -
1080. Graduate Admission (30)
高考录取模拟输入:N学生总数(编号0~N-1) M学校总数(代号0~M-1) K(每个学生可以填的志愿个数)goal0 goal1……goalM-1 (按照代号0~M-1顺序给出的M个学校预录取的人数)GE书面分 GI面试分 第一志愿 第二志愿 ……第K志愿 (接着N行,按照学生编号0~N-1给出)……输出(M行,每行代表0~M-1的学校的录取学生编号,并且每行按编号从小到大排序,如果这个学校一个也没有录取,那么输出一行空行)要求先把学生根据 总分原创 2015-08-17 13:32:31 · 1022 阅读 · 0 评论 -
1037. Magic Coupon (25)
两行中,每个数最多使用一次,上面的乘下面的加起来最大;我这里尝试使用deque,双向链表,其实使用两个一维数组,分别排好序,从左便开始,乘起来能大于0就加,否则从后面开始。原创 2015-08-05 12:41:29 · 663 阅读 · 0 评论 -
1085. Perfect Sequence (25)
N个数 p接着无序的N个数我们要先把它排好序,然后根据要求,从最小的开始,看看当前*p>=max的max能到哪里,最长多少个;输出最长的个数下面两个代码,就一个地方不一样,一个超时了一个没有超时。AC的在二分查找那里用的是指针,而另一个超时的不是指针。简单的说,AC传过去如果改变了回来的被改变的。而超时的,改变的和原来的没有关系。本来觉得二分查找也不用改变,就用了,结果就超时了,还以为我的二分是多么的不协调。还要注意一点,当前*p会超过int,如果全部设为int 会一个测试点结果错误原创 2015-08-17 20:37:18 · 1373 阅读 · 0 评论 -
1089. Insert or Merge (25)
【直接插入Insert sort 】,当N>1时;进行N-1循环,每次的主角为2~N; 每次把主角和与他前一个位置的配角比较,如果主角较小,把主角当前位置给与他比较的配角,并占据配角的位置,继续直到前面没有配角; 否则这一次结束显然前面排好序的一定从小到达,后面还没有排好序的一定在原来的位置;【归并排序】: 先两个分成一组排序;接着4个分成一组排序,再接着八个分成一组排序;……最后的N个排序;原创 2015-08-18 20:36:16 · 622 阅读 · 0 评论 -
1038. Recover the Smallest Number (30)
排列组合,看哪个数值比较小;如果最后结果只有零要特别考虑原创 2015-08-05 15:56:49 · 524 阅读 · 0 评论 -
1095. Cars on Campus (30)
输入N个车辆进出记录 K个要查询的时间点N行 车牌 时间(00:00:00~23:59:59) 进in/出out……K行 查询的时间(对应输出这个时间点停车场的车辆数。这个时间点如果正好有车有操作,那么车辆数是操作后的 【进+1/出-1/无0】)……最后给出一天中累计停放的时间最长的车牌号(多个按字母序输出) 并输出这个最长时间PS:由于K行的查询是按时间顺序进行的,那么可以直接从头搜到尾。也可以用统计放到数组里面再用二分法,测试出来的时间差不多,内存有点区别。但是如果全部用ci原创 2015-08-19 15:56:15 · 1570 阅读 · 0 评论 -
1039. Course List for Student (25)
用map和vector 充当数组邻接表的最后一个测试点运行超时,然后就用大数组了;还看到另一个通过数据范围和课程编号的Hash的,这个就直接贴别人的了,其实还有的没有完全理解好,那个id应该是默认开始为零吧,等有时间重新弄弄看,没有初始化总觉得乖乖的,那个异或48的好像是通过ASCII码直接取,相当于char-‘0’;。三个都在后面2015-8-6 19:57理顺了Hash的原创 2015-08-06 20:01:51 · 626 阅读 · 0 评论 -
1101. Quick Sort (25)
N个数对于这N个数,那些左边都小于等于它,右边都大于等于它的是属于要输出的,进入ans中ans排好序从小到大输出ans中有几个数+换行输出ans[0] ans[1]……+换行(PS即使没有数也要换行(否则一个测试点错误),如果有数,没两个数要空格,最后的数后面没有空格)这次pat2015考试中是B题,由于以前对于qsort些起来不熟,以为要写qsort没有认真看。这题就是这次pat中连错误代码都没有提交的。考完仔细一看,根本不用qsort的partition原创 2015-09-12 21:10:37 · 1321 阅读 · 0 评论 -
1069. The Black Hole of Numbers (20)
输入一个数N; 如果这个数是XXXX X都一样那么输出XXXX - XXXX = 0000 否则这个数的各个位数 组成的最大的 减去 组成的最小的 =结果 按形式输出,如果此时结果为6174或者XXXX结束;(此处至少进行一次,测试数据中有:如果输入的是6174也是要执行这样的一次的)下面一个ac的,还有一个超时的原创 2015-08-14 11:49:02 · 1117 阅读 · 0 评论 -
1099. Build A Binary Search Tree (30)
有N个结点(0-N-1),接下来N个结点的左结点和右结点标号,无为-1;再接下来给出N个要填充的值;填充要点左<中,中<=右;做法先按非降序排列#include<algorithm> 使用DFS深度优先搜索中序填充 左-中-右输出一层一层输出用到BFS广度优先搜索 中-左-右用到了#include<queue>queue先进先出原创 2015-08-02 10:46:56 · 864 阅读 · 0 评论 -
1068. Find More Coins (30)
N个钱币,要买goal元的东西接着是乱序的钱币;求满足可以正好不找零的情况,有给出把零钱最少的用的最多的那条; 没有No Solution第一个用了DFS,第二个01背包,一个从小到大,找到直接结束;一个从大到小,全结束后如果符合条件,显然是小的覆盖在大的上面原创 2015-08-14 09:36:59 · 712 阅读 · 0 评论 -
1047. Student List for Course (25)
共有N个学生,K门课(编号1~K)学生姓名 选课数 选的课的编号用到vector ,sort,string,如果用cin cout就过不了,然后string的printf scanf又是硬伤。下面两个代码,一个是先到各科里面,然后要输出前排一下;用的内存较少;一个是报全部的按名字排好序,再一个个把名单送到各科原创 2015-08-10 11:50:54 · 479 阅读 · 0 评论 -
1048. Find Coins (25)
有N个钱币,要付账15,在N个钱币里面看看有没有两个正好和为15的。如果有多个,那么找V1比较小的那个,要自己先排个序。 (PS:一开始理解错了以为在原来的队伍里面找相邻的)原创 2015-08-11 20:00:32 · 637 阅读 · 0 评论 -
1017. Queueing at Bank (25)
所有的窗口的初始时间为早上8点,来的如果在CloseTime 61201 秒=17:00:1或之后均不会被服务,所以在输入中就比较排除(其余都会被服务,即使轮到的时候在 CloseTime或之后PS:这里我测试了轮到的时间如果超过或等于CloseTime就停止会测试点一个错误 2015-7-29.不知道以后数据会不会更新),处理时间有超过60分钟的强制60分钟。按时间先来后到排序, 用到头文件#include<algorithm> sort(QB, QB + N, QBCMp); 之后循环找到最早有原创 2015-07-29 10:20:56 · 1916 阅读 · 0 评论 -
1022. Digital Library (30)
map的使用,map<键,键值> 键first,键值second ,头文件#include<map> ①键唯一,我的感觉就是键像数组的标号一样使用,但是可以自己定义(类),键默认升序,特殊的键要自己定义小于号(符号重载);②而键值可以是单值(int,char)或者多值(数组之类int[],char[])原创 2015-07-30 12:29:09 · 1254 阅读 · 0 评论 -
1052. Linked List Sorting (25)
首先给出N个地址,再给出第一个地址接着每个地址 地址存放值 下一个地址……目的:通过第一个地址获得这条所带有的全部存储单元,在把这些单元通过存储的值从小到大排序。输出地址注意格式用到原创 2015-08-12 15:50:05 · 770 阅读 · 0 评论 -
1053. Path of Equal Weight (30)
N个结点,M个非叶节点,和为weightN个结点,每个结点的值一行;接下来M行非叶节点编号 这个编号有几个子结点,接着几个子结点的编号要求满足从root头到尾的总值为weight;当有多条时,按照同一水平的,值大的在前面原创 2015-08-12 19:03:55 · 616 阅读 · 0 评论 -
1055. The World's Richest (25)
总共 N个人,有K中排行;N行 名字 年龄 身价……K行 要输出几人 最小年龄 最大年龄……如果有符合条件的输出前几个即以内对应的姓名、年龄、身价 ,顺序身价>=年龄>=姓名 否则None原创 2015-08-12 20:28:18 · 581 阅读 · 0 评论 -
1056. Mice and Rice (25)
NP只编号的老鼠(编号0~NP-1) NG这行是NP只老鼠的重量(根据0~NP-1的编号给出的重量)这行是老鼠顺序打乱后形成的一行编号;要求,根据打乱后的编号行,每NG只为一组;每组重量最大的获胜到下一轮;下一轮继续。根据老鼠编号0~NP-1 输出每只老鼠的排名(老鼠的排名为:某只老鼠X参加最后一轮,这一轮有若干只老鼠y晋级,那么某老鼠x的排名为若干加一y+1)原创 2015-08-12 22:21:48 · 791 阅读 · 0 评论 -
1062. Talent and Virtue (25)
1062. Talent and Virtue (25)时间限制200 ms内存限制65536 kB代码长度限制16000 B判题程序Standard作者CHEN, LiAbout 900 years ago, a Chinese philosophe原创 2015-07-17 19:46:03 · 820 阅读 · 0 评论 -
1025. PAT Ranking (25)
输入N N个地区接着每个地区K 对应K个帐号和他的分数;我这里用动态数组vector可以不断的把所有地区的id,score,location加入(.push_back) 到ranklist中,输入结束,全体sort获得非升vector 的ranklist;接着每个定义最高分sc为101.对应的排名rank为0,分数为101的count为0个;利用 final_rank(int*sc,int*finalrank,int*finalCount,int score)获得对应的总排名。区域排名#原创 2015-07-30 21:03:13 · 718 阅读 · 0 评论 -
1026. Table Tennis (30)
这题太鬼畜了,只能说目前AC了2015-7-31.做了一整天。但是这题里面我尝试使用了各种vector的属性事件甚么的。看起来太像在写C#了。先找到最先空的一个窗口/桌子获得时间M,窗口编号mindex;一、如果当前有普通或者Vipif(mindex这个窗口是vip窗口) { if当前有vip,vip特权 else(当前有普通)普通 }else(这个窗口不是vip窗口){ 可能在窗口中有一个vip窗口与这个窗口同时结束,获取mv,失败mv=-1; if(获取成功原创 2015-08-01 00:35:04 · 764 阅读 · 0 评论 -
1028. List Sorting (25)
输入N 然后就有N个records,c=1;按ID升序排序c=2,按名字非降排序,若相等按ID排序c=3,按分数非将排序,若相等按ID排序;做这题的时候不知道甚么原因,一个输出for循环竟然总是丢失第一个,好像是传参0一值错误,然后我就直接不传0了; 一开始我用cin和cout,最后一个测试点超时。改成scanf和printf又vs会报告不安全。然后就滚回vc6,结果忘记ID要补零了,但是忘记补零的时候最后一个测试点可以过。printf("%06d",id);设置宽度6,不够补零,这里没有点啊,点原创 2015-08-01 15:49:17 · 533 阅读 · 0 评论 -
1107. Social Clusters (30)
N(一共有的注册用户数)Ki(后面有ki个爱好对应编号): h1……hki……求这些注册用户可能是朋友的朋友圈个数;【用户id:1~N;爱好编号1~1000】比如【3】2:5 3【5】1:3【7】4:6 8 1 5【3】【5】有共同爱好3,存在可能,【3】【7】有共同爱好5,存在可能;座椅【3】【5】【7】一个圈我用的bfs,有的用并查集的(想到过并查集,但是很久没做了,又失之东隅)原创 2016-07-10 18:29:37 · 733 阅读 · 0 评论