排序
youth.lin
a tyro at CS and NLP.
展开
-
九度OJ 1061 成绩排序(结构体排序)
原题地址:http://ac.jobdu.com/problem.php?pid=1061题目描述: 有N个学生的数据,将学生数据按成绩高低排序,如果成绩相同则按姓名字符的字母序排序,如果姓名的字母序也相同则按照学生的年龄排序,并输出N个学生排序后的信息。输入: 测试数据有多组,每组输入第一行有一个整数N(N 每个学生的数据包括姓名(长度不原创 2017-03-23 20:49:13 · 707 阅读 · 0 评论 -
EOJ 3236 字串非重复字符数排序
题目http://acm.ecnu.edu.cn/problem/3238/ 按字符串中不同字符个数从多到少的顺序进行排序,如果不同字符个数相同,按字符串的字典序排序。解题思路简单排序题,字符去重用python的set方法非常简单。自定义sort方法的排序规则,mycmp函数返回正数表示交换两个数。python中sort()方法自定义AC代码#coding=utf-8def mycmp(x,原创 2017-09-12 09:49:17 · 670 阅读 · 1 评论 -
EOJ 3239 最长的等差数列(排序+枚举)
题目http://acm.ecnu.edu.cn/problem/3239/ 题意: 给定n (1≤n≤100) 个数,从中找出尽可能多的数使得他们能够组成一个最长的等差数列。输出该最长等差数列的长度。 注意:当n=1时,构成长度为1的等差数列。解题思路由于这些数字不一定要连续,所以先对所有数字排序,便于后续比较大小和选取递增的序列。用以下几个变量维护一个等差数列:i 记原创 2017-09-11 19:36:58 · 667 阅读 · 0 评论 -
EOJ 3124 单词表(排序)
题目http://acm.ecnu.edu.cn/problem/3124/ 提取英文文本中的单词,重复出现的单词只取一个,把它们按照字典顺序排序,建立为一个单词表。 注意:单词与单词之间用空格或标点符号(逗号 (,),句号 (.), 惊叹号 (!), 问号 (?))分隔;提取的单词只包含 26 个英文字符。解题思路用C++做可能比较麻烦,直接上python的re模块。re.split(原创 2017-09-11 17:54:35 · 877 阅读 · 0 评论 -
EOJ 3292 解密字符串(排序)
题目 题意:为防止泄密,将数码0到9用全大写的英文单词表示并将所有字母打乱。密码114表示为ONEONEFOUR,或OURNEONFOE,FOOONNEERU等。 给定一个大写字母表示的字符串,要求算出原来的数字表示的密码(非递减)。解题思路 0-9对应的大写英文单词: ZERO, ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT,原创 2017-09-09 15:50:54 · 507 阅读 · 0 评论 -
STL 例题
一些关于STL数据结构、函数使用的例题。原创 2017-04-16 12:55:48 · 2073 阅读 · 2 评论 -
PAT 1029 Median(中位数+归并排序)
题目https://www.patest.cn/contests/pat-a-practise/1029 题意:求两个排好序的数组合并后的中位数。解题思路担心直接sort会超时,所以拿归并排序的merge方法合并数组,即从每次都从两个数组剩余的元素中挑出最小的,若某个数组先挑完,则另一个数组原样抄回。然而,sort也能过……(摊手)AC代码#include <iostream>using n原创 2017-06-16 22:41:00 · 813 阅读 · 0 评论 -
PAT 1025 PAT Ranking(双重排序)
题目https://www.patest.cn/contests/pat-a-practise/1025 题意:给出每个考场中每个学生的成绩,求所有学生的总排名以及所在考场内的分排名。注意,同分的学生排名相同,其后的学生排名后推。解题思路简单的排序题,用结构体保存每个学生的所有信息。先对分数局部排序,再整体排序即可。需要注意的是排名的值,与前一个学生同分的时候排名相同,否则排名为比该学生分数高原创 2017-06-16 19:48:14 · 1105 阅读 · 0 评论 -
PAT 1006 Sign In and Sign Out(简单排序)
原题地址https://www.patest.cn/contests/pat-a-practise/1006 题意:给出每个职员进入公司和离开公司的时间,筛选出最早开门和最迟关门的职员编号。解题思路在结构体中用六个整数分别存放入、出时间的整数值即HH:MM:SS(用控制位宽的方式读入),再对入、出时间分别做排序即可。AC代码#include <iostream>#include <cstdi原创 2017-05-10 16:20:19 · 386 阅读 · 0 评论 -
PAT 1016(排序+模拟)
题目https://www.patest.cn/contests/pat-a-practise/1016 给出一份通话记录流水账,每条记录都标记客户姓名,是开始还是结束拨打,以及对应的时间(月日小时分),统计每个人的账单,按要求输出。解题思路这实在是一道复杂的模拟题,要求的输出格式也是真的烦,不涉及到任何算法,纯粹要做好统计工作。题目重点首先划一下题目中的重点(ง •_•)ง:【a long原创 2017-05-29 15:27:35 · 642 阅读 · 2 评论 -
UVa 400 Unix ls(排序+输出控制)
原题地址https://vjudge.net/problem/UVA-400 给定n个代表文件名的字符串,按字典序排序,再按列优先输出,每行最多输出60个字符,要求输出的行数最少。(最后一列的列宽为最大字符串长度max_len,其余列的列宽为max_len+2个字符)解题思路本题是《算法竞赛入门经典》的习题5-1,是排序的水题。要使输出的行数最少,那么每一行就要尽可能输出60个字符,但是由于列原创 2017-04-16 22:49:04 · 499 阅读 · 0 评论 -
UVa 815 Flooding!(排序)
原题地址https://vjudge.net/problem/UVA-815 题意:有一个n*m的方格,每个格子的底面都是边长为10的正方形,整个区域外看作无限高的墙壁。输入每个格子的海拔高度,以及区域内的雨水总体积,输出区域水位的海拔高度以及淹没方格的占比。解题思路本题是《算法竞赛入门经典》的习题4-10,这一章前面几道习题都比较复杂,为了照顾到后面的进度,先跳过啦。刚开始没有读懂题意,后来原创 2017-04-15 20:26:18 · 427 阅读 · 0 评论 -
POJ 2159 Ancient Cipher(字符串排列替换)
原题地址:http://poj.org/problem?id=2159 题意:古罗马采用一种混合替换、排列的方法对明文加密(替换即将一个字符替换为另外一种字符,不同字符替换后的字符各不相同;排列即打乱字符的先后顺序),给定一串密文和一串明文,判断这串密文是否可能表示这串明文。解题思路题目中只是解释了替换和排列的定义,但没有给出具体的替换规则和排列规则,因此这两种规则执行的先后顺序,以及执行的规原创 2017-03-27 18:07:27 · 506 阅读 · 0 评论 -
九度OJ 1023 EXCEL排序(结构体排序)
原题地址:http://ac.jobdu.com/problem.php?pid=1023题目描述: Excel可以对一组纪录按任意指定列排序。现请你编写程序实现类似功能。 对每个测试用例,首先输出1行“Case i:”,其中 i 是测试用例的编号(从1开始)。随后在 N 行中输出按要求排序后的结果,即:当 C=1 时,按学号递增排序;当 C=2时,按姓名的非递减字典序原创 2017-03-23 21:53:07 · 368 阅读 · 0 评论 -
POJ 1804 Brainman、 EOJ 3234 Sort(归并排序+逆序对)
题目http://poj.org/problem?id=1804 题意:求数组中的逆序对个数。逆序对指的是满足ai > aj的数对(ai, aj)。解题思路在归并排序的合并过程中,加入统计逆序对的语句即可。 归并排序利用了分治的思想,将数列a[l, r]分成两半a[l, mid]和a[mid+1, r],分别进行归并排序,然后再将这两半合并(merge)起来。 在合并的过程中(设原创 2017-06-29 21:34:26 · 425 阅读 · 0 评论