第m大的身份证号码(局部排序代全局、结构体排序)
第m大的身份证号码(点击)
时间限制: 1 Sec 内存限制: 128 MB
提交: 392 解决: 143
[提交] [状态] [讨论版] [命题人:admin]
题目描述
身份证号是我国公民的唯一识别码,它由18位数字或字母组成(只可能最后一位是字母)。18位身份证号码各位的含义如下:第1-2位为省、自治区、直辖市代码;第3-4位为地级市、盟、自治州代码;第5-6位为县、县级市、区代码。第7-14位为出生年月日,比如19970401代表1997年4月1日;第15-16位为顺序号,第17位代表性别,男为单数,女为双数;第18位为校验码,0-9和X。作为尾号的校验码,是把前十七位数字代入统一
的公式计算出来的,解答本题你不用关心是如何计算出来的。现在给你n个身份证号码,请你按照出生年月日的字典序(年龄从大到小)输出第m个人的身份证号。
输入
第一行包含两个正整数n和m,两数间用一个空格分隔,接下来的n行每行为一个形如上述格式的身份证号码(不需要关心校验码的正确性,不影响本题解答)。
输出
仅包含一行,为题目要求的一个身份证号码。
样例输入
复制样例数据
4 2
110108196004063022
13021119640203652X
420333197902112718
210222200012036512
样例输出
13021119640203652X
思路:
开始以为必须要将全部内容排序 然后想到了用 结构体+sort 排序 但后来写了一下cmp函数 由于从第7-14位 都需要考虑 所以cmp函数不好写 后来就放弃了这种想法。(如果用冒泡加判断每一位更是不容易)
比赛完了 和同学商量 知道原来身份证年龄可以看成一个数字 这个数字越小 代表他的年龄越大 想了想确实是这样 而且还是挺简单的 难怪 好多人都做出来了 。
代码:
#include<stdio.h>
#include<math.h>
int main()
{
int sum[1005][5],n,m,i,j,temp;
char a[1005][25];
scanf("%d%d",&n,&m);
for(i=0;i<n;i++){ //输入每组的字符(身份证号码)
scanf("%s",a[i]);
}
for(i=0;i<n;i++){
sum[i][0]=i+1; //开二维数组 [0]位放这个省份证号码原来的顺组(不然下面排完序根本不知道要输出哪个身份证号了)
sum[i][1]=((a[i][6]-'0')*pow(10,7)+(a[i][7]-'0')*pow(10,6)+(a[i][8]-'0')*pow(10,5)+(a[i][9]-'0')*pow(10,4)+(a[i][10]-'0')*pow(10,3)+(a[i][11]-'0')*pow(10,2)+(a[i][12]-'0')*pow(10,1)+(a[i][13]-'0'));
} //将出生年月日 总共转换成一个数字 准备排序
for(i=0;i<n-1;i++){
for(j=0;j<n-i-1;j++){
if(sum[j][1]>sum[j+1][1]){
temp=sum[j][1];
sum[j][1]=sum[j+1][1]; // 这一步可以使用结构体排序 比赛的时候也有点忘记了
sum[j+1][1]=temp; //先就用冒泡替代一下吧
temp=sum[j][0];
sum[j][0]=sum[j+1][0];
sum[j+1][0]=temp;
}
}
}
printf("%s\n",a[sum[m-1][0]-1]); //通过排序后的数字 将要求的第m大的身份证号输出
return 0; // 二维数组存放原来编号起了非常大的作用
}
结构体排序(部分):
struct node{
int x,y; //定义结构体放在最上面 不然cmp函数会报错 说node找不到
}sum[1005]; //开始我定义了二维数组 但会报错 只需要定义以为数组就可以 因为这样就代表每个
// 都数组包含两个int型参数
int cmp(node a,node b)
{
return a.y<b.y;
}
for(i=0;i<n;i++){
sum[i].x=i+1;
sum[i].y=((a[i][6]-'0')*pow(10,7)+(a[i][7]-'0')*pow(10,6)+(a[i][8]-'0')*pow(10,5)+(a[i][9]-'0')*pow(10,4)+(a[i][10]-'0')*pow(10,3)+(a[i][11]-'0')*pow(10,2)+(a[i][12]-'0')*pow(10,1)+(a[i][13]-'0'));
}
sort(sum,sum+n,cmp); 一维数组sort+结构体 排序
第m大的身份证号码(局部排序代全局、结构体排序)的更多相关文章
- 转载 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法
转载自:http://www.cnblogs.com/cj695/p/3863142.html sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在 ...
- 【转】 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法
sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能 ...
- go语言的排序、结构体排序
原文:https://studygolang.com/articles/1598 晚上准备动手写点 go 的程序的时候,想起 go 如何排序的问题.排序 sort 是个基本的操作,当然搜索 searc ...
- 从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法
sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能 ...
- 【C++】从最简单的vector中sort用法到自定义比较函数comp后对结构体排序的sort算法
sort函数在使用中非常好用,也非常简单,而且效率与冒泡或者选择排序不是一个数量级.本文就sort函数在vector中的用法分为sort函数入门用法与自定义comp比较函数比较结构体这两个最基本的功能 ...
- 小球(总结sort和cmp函数、结构体排序)
问题 N: 小球(点击) 时间限制: 1 Sec 内存限制: 128 MB ...
- HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- 网上关于sort结构体排序都不完整,我来写一个完整版的 2014-08-09 16:50 60人阅读 评论(0) 收藏
主要参考sort函数_百度文库, 但是那篇有错误 2.结构体排序,a升,b降,c降 平板视图 打印? 01 #include <iostream> 02 #include <algo ...
- hdu1263 水果(结构体排序)
Problem Description 夏天来了~~好开心啊,呵呵,好多好多水果~~ Joe经营着一个不大的水果店.他认为生存之道就是经营最受顾客欢迎的水果.现在他想要一份水果销售情况的明细表,这样J ...
随机推荐
- 如何使用IDEA快速创建一个springboot项目
如何使用IDEA快速创建一个springboot项目 https://jingyan.baidu.com/article/0964eca24fdd938284f53640.html
- Java开发架构篇:领域驱动设计架构基于SpringCloud搭建微服务
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言介绍 微服务不是泥球小单体,而是具备更加清晰职责边界的完整一体的业务功能服务.领域驱动 ...
- POJ2758 Checking the Text
题目链接:https://vjudge.net/problem/POJ-2758 题目大意: 先给出一串原始字符串,在此基础上执行两种操作: 1.在第 p 个字符前添加字符 ch,如果 p 比现字符串 ...
- Java-第15章图形用户界面设计例题
Example15_1.java JFrame常用方法 import javax.swing.*; import static javax.swing.JFrame.*; public class E ...
- 【Copy攻城狮日志】Node快速重命名文件,告别Potplay字幕困扰问题
↑开局一张图,故事全靠编↑ 前言 Copy攻城狮日志的惯例,开局一张图,开始为您讲述一个鲜为人知的故事.故事的开头要从本大狮从盗版网站下载udemy课程的犯罪伊始说起,去年的某月某天,我真正接触到了“ ...
- 7.SortSet排序集合类型操作
Sort Set排序集合类型 (1)介绍 和set一样sorted set也是string类型元素的集合,不同的是每个元素都会关联一个权.通过权值可以有序的获取集合中的元素 该Sort Set类型适合 ...
- Unity 游戏框架搭建 2019 (五十、五十一) 消息机制小结&MonoBehaviourSimplify 是框架?
我们花了 5 篇文章学习了消息机制的方方面面.并且完成了一个简易消息机制,之后集成到了我们的 MonoBehaviourSimplify 里. 现在 MonoBehaviourSimplify 有一点 ...
- Web缓存欺骗
该漏洞主要是cdn安全配置的问题,cdn主要存储以下文件,加快访问速度 class, css, jar, js, jpg, jpeg, gif, ico, png, bmp, pict, csv, d ...
- VNC CentOS 7 远程工具,VNC CentOS 7 远程工具推荐!
IIS7服务器管理工具是一款能够在Windows和Linux系统下进行VNC使用的软件!它能够成为VNC的客户端,帮助操作者完成VNC的相关命令!同时,它还能够作为FTP的操作客户端,实现FTP的传输 ...
- jchdl - GSL实例 - Add
https://mp.weixin.qq.com/s/6xcYYdYZTBPTf25xFluzBQ 使用FullAdder级联实现加法器 参考链接: https://github.com/wj ...