22级期末模拟

说在前面

我的方法还是有点暴力的。

思路

本题大致上是一个结构体快排的问题。

首先读入信息。对于读到的信息直接进行快排处理。

将ID和machine作为快排元素,接着对于数组进行遍历操作。利用一个hash表来存储信息,如果是非正常情况的,那么用ID建立hash表,为了打印时方便,添加一个i进入hash的结构体中,遍历hash表输出即可。

代码

//Author hugo
//Time 2023/6/8 19:18
/**期末模拟*
*/
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 1000000
typedef struct astu {int ID;char name[16];int machine;char time[7];int flag;
} Student;
Student stu[205];int cmp(const void *e1, const void *e2) {Student *p = (Student *) e1;Student *q = (Student *) e2;if (p->ID == q->ID) {return p->machine - q->machine;}return p->ID - q->ID;
}
struct hash{int flag;int i;
} hash[MAXSIZE];
int main() {int n;scanf("%d", &n);for (int i = 0; i < n; ++i) {scanf("%d%s%d%s", &stu[i].ID, stu[i].name, &stu[i].machine, stu[i].time);stu[i].flag = 0;}qsort(stu, n, sizeof(Student), cmp);
//    putchar(10);
//    for (int i = 0; i < n; ++i) {//        printf("%d %s %d %s\n",stu[i].ID, stu[i].name, stu[i].machine, stu[i].time);
//    }for (int i = 0; i < n - 1; ++i) {if (stu[i].ID == stu[i + 1].ID) {if(stu[i + 1].machine == stu[i].machine){continue;}else{hash[stu[i].ID].flag = 1;hash[stu[i].ID].i = i;}}}for (int i = 0; i < MAXSIZE; ++i) {if(hash[i].flag == 1) {int k = hash[i].i;printf("%d %s\n",stu[k].ID,stu[k].name);}}return 0;
}
/*
21
191028 wangdi 15 093000
192387 litong 39 093000
190877 liugang 37 093001
197583 huangqinian 196 093004
195211 liuhao 201 093005
193098 zhaogang 377 093006
190001 zhousheng 1 093007
190009 wuhong 12 093007
197583 huangqinian 197 093008
195877 lisisi 202 093008
192387 litong 309 093009
191000 tonghao 201 093402
197583 huangqinian 196 093500
191028 wangdi 15 093507
190010 wangzhuang 85 093558
195333 zhangye 63 093600
197583 huangqinian 195 094100
195211 liuhao 200 095103
190010 wangzhuang 287 095509
193098 zhaogang 377 095606
191028 wangdi 15 095709
【样例输出】
190010 wangzhuang
192387 litong
195211 liuhao
197583 huangqinian*/

buaa22级期末模拟相关推荐

  1. 重庆大学c++2022级-期末模拟考试

    A.单选题 2-1下列程序代码,正确的输出结果是( ) int a=0xfe; char b=062; cout<<a<<","<<b<& ...

  2. BUAA(2021春)查家谱(士谔书院16级期末)——找最近公共祖先(已上传测试数据和代码)

    BUAA数据结构期末模拟题--查家谱 看前须知 考试回顾 题目内容 问题描述 输入形式 输出形式 样例 样例说明 题解 思考和详解 参考代码 测试数据 看前须知 要点介绍和简要声明. 考试回顾 格式控 ...

  3. 数学第一学期期末模拟试卷

    数学第一学期期末模拟试卷 (满分150分,考试时间100分钟)              (2015.12) 一. 选择题(本大题共6题,每题4分,满分24分) 1. 下列各式中,正确的是 (  ) ...

  4. dw网页设计期末设计一个网页_Dreamweaver网页设计期末模拟试题(1)

    山东广播电视大学 开放教育Dreamweaver网页设计期末模拟试题 (1) 一.单项选择题 1.下图为Dreamweaver 8的新建文档页面,一般情况下,创建完全空白的静态页面应选择(). A. ...

  5. 小明利用计算机软件绘制函数,2019年人大附中初二下期末模拟数学试题

    初二下数学期末模拟1姓名: 一.选择题(本题共30分,每小题3分) 在下列各题的四个备选答案中,只有一个 ....是正确的. 1.下列各点中,在直线y=2x上的点是() A.(1,1) B.(2,1) ...

  6. 《基础会计学》期末模拟试题及答案

    <基础会计学>期末模拟试题(一) 一.单选题(本类题共15分,每题1.5分) 1.资产是企业(C )能以货币计量的经济资源. A拥有 B控制 C.A或B  D.A和B 2.根据福利人员工资 ...

  7. 计算机应用模拟卷,计算机应用期末模拟试卷B卷

    计算机应用期末模拟试卷B 2012年(春季)学期 科目计算机应用考试形式:闭卷(机试),允许带入场 说明: 1.若没有将考试文件夹 1.题目规定由考生自己创建的文件和文件夹,都必须按题目要求命名并放在 ...

  8. 计算机一级b在线模拟,计算机一级b级考试模拟试题及答案

    计算机一级b级考试模拟试题及答案 2016年计算机等级考试时间是3月26日-29日,以下小编特意为大家整理出计算机一级考试b选择题及答案,希望对大家的复习有帮助! 1.计算机病毒主要造成______. ...

  9. 问题 G: 21级期末机试-谍影寻踪(10分)

    问题 G: 21级期末机试-谍影寻踪(10分) 题目描述 2020年10月,国家安全机关组织实施"迅雷-2020"专项行动,破获数百起间谍窃密事件,有效维护了国家安全和利益.在行动 ...

最新文章

  1. CV算法复现(分类算法4/6):GoogLeNet(2014年 谷歌)
  2. leetcode-21 合并两个有序链表
  3. 共享单车取消月卡优惠 烧钱时代正式结束
  4. 【Javascript】之eval()
  5. 人生抉择之-创业记录片(一)
  6. 2.4操作系统之死锁详解(预防、避免、检测、解除)+思维导图
  7. python中可选参数是什么意思_Python如何定义有可选参数的元类
  8. 实战:自定义脚本启动mysql-mysql 5.6.19
  9. ubuntu-12.04.2忘记管理员密码(图解)
  10. CocosBuilder 完全攻略
  11. quartz定时任务集群版
  12. poker游戏编码规则
  13. 总结:大学实验室的教授喜欢什么样的本科实习学生
  14. 服务器如何几十台电脑一起装系统,多台电脑如何同时安装系统
  15. 滴滴一下,小程序专车来了
  16. 配置高档游戏型计算机,2021年游戏台式电脑配置推荐
  17. 长方形图片html圆形,css实现圆角矩形、半圆、圆形效果—border-radius使用详解
  18. int64_t 在 32 位环境下其实是 long long
  19. 被“现实”打败的3D打印
  20. Vue组件库 View UI 来看看这80种奇奇怪怪的按钮

热门文章

  1. Winpe 添加驱动程序
  2. 孩子,未来你所需要的职业素养,《中国机长》都告诉你了
  3. 学位论文中公式按章节编号“一.1”如何变成“1.1”?
  4. QT 声音频率和振幅以及相位
  5. 海外生活: 胆小鬼驾车行走多伦多
  6. 进销存设计与分析_成本核算(7)
  7. iOS15上怎么打开epub类型文件
  8. 西游记团队中,需要裁掉一个人,你会先裁掉谁?
  9. MATLAB的强化学习工具箱(Reinforcement Learning Toolbox)使用细节注意
  10. 在运行框中用命令快速打开应用程序