【ACM】杭电OJ 1862
用了三个快速排序的子函数进行排序,排序结束后,再从头循环,判断成绩或者姓名是否相同。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <algorithm>
#include <string>
using namespace std;const int maxn =100000 + 100;typedef struct one_person_info
{int id;string name;int grade;
}N;N stu[maxn];void quick_sort1(int left,int right)
{int i,j;i=left;j=right;if(left<right){stu[0]=stu[i];while(i!=j){while(stu[0].id<stu[j].id && i<j) j--;if(i<j){stu[i]=stu[j];i++;}while(stu[0].id>stu[i].id && i<j) i++;if(i<j){stu[j]=stu[i];j--;}}stu[i]=stu[0];quick_sort1(left,i-1);quick_sort1(i+1,right);}
}void quick_sort2(int left,int right)
{int i,j;i=left;j=right;if(left<right){stu[0]=stu[i];while(i!=j){while(stu[0].name<stu[j].name && i<j) j--;if(i<j){stu[i]=stu[j];i++;}while(stu[0].name>stu[i].name && i<j) i++;if(i<j){stu[j]=stu[i];j--;}}stu[i]=stu[0];quick_sort2(left,i-1);quick_sort2(i+1,right);}
}void quick_sort3(int left,int right)
{int i,j;i=left;j=right;if(left<right){stu[0]=stu[i];while(i!=j){while(stu[0].grade<stu[j].grade && i<j) j--;if(i<j){stu[i]=stu[j];i++;}while(stu[0].grade>stu[i].grade && i<j) i++;if(i<j){stu[j]=stu[i];j--;}}stu[i]=stu[0];quick_sort3(left,i-1);quick_sort3(i+1,right);}
}
int num;int main ()
{char s[10];int n,C,i,j,len,left,right;while(scanf("%d%d",&n,&C)==2){if(n==0 && C==0) return 0;num++;for(i=1;i<=n;i++){scanf("%d",&stu[i].id);cin>>stu[i].name;scanf("%d",&stu[i].grade);}printf("Case %d:\n",num);if(C==1){quick_sort1(1,n);for(i=1;i<=n;i++){itoa(stu[i].id,s,10);len=strlen(s);for(j=1;j<=6-len;j++) printf("0");printf("%d ",stu[i].id);cout<<stu[i].name;printf(" %d\n",stu[i].grade);}}else if(C==2){quick_sort2(1,n);i=1;while(i<n){if(stu[i].name==stu[i+1].name){left=i;while(stu[i].name==stu[i+1].name) i++;right=i;quick_sort1(left,right);}i++;}for(i=1;i<=n;i++){itoa(stu[i].id,s,10);len=strlen(s);for(j=1;j<=6-len;j++) printf("0");printf("%d ",stu[i].id);cout<<stu[i].name;printf(" %d\n",stu[i].grade);}}else if(C==3){quick_sort3(1,n);i=1;while(i<n){if(stu[i].grade==stu[i+1].grade){left=i;while(stu[i].grade==stu[i+1].grade) i++;right=i;quick_sort1(left,right);}i++;}for(i=1;i<=n;i++){itoa(stu[i].id,s,10);len=strlen(s);for(j=1;j<=6-len;j++) printf("0");printf("%d ",stu[i].id);cout<<stu[i].name;printf(" %d\n",stu[i].grade);}}}return 0;
}
相关文章:

Custom Client Side Drag and Drop Behavior in ASP.NET AJAX
这是我的一篇在http://aspalliance.com/上的英文文章,限于版权协议中的排他性条款,这里只能给出一部分摘要引用。有兴趣的朋友可以到这里看到完整的全文:《Custom Client Side Drag and Drop Behavior in ASP.NET AJAX》。 Published: 19 Jun…
SLAM的开源以及在移动端AR的适用分析
当前的开源方案 当下部分总结引用自blog:http://blog.csdn.net/OnafioO/article/details/73175835文章总结很好没本文关于其在移动端方面加以总结,希望大家参与讨论,不足之处,请指正。 本讲的前半部分将带领读者参观一下当前的视觉SLAM方案…
用 cooking 搭建一个简单又优雅的 Vue 项目开发环境 (入门篇)
本文适合 Vue 的初学者,以及对 webpack 不熟悉的同学阅读。前提是你要会用基本的命令行、 Node 和 NPM,以及掌握 ES2015 的基础知识。本文都是在 macOS 环境下运行,要求使用 npm > 3, node > 4 的环境。我们会以 Vue 2.0 搭配 Webpack …

【算法导论】【ACM】归并排序总结
许多有用的算法在结构上是递归的:为了解决一个给定的问题,算法一次或多次递归地调用其自身以解决紧密相关地若干子问题。这些算法典型的遵循分治法地思想:将原问题分解成几个规模较小但类似于原问题的子问题,递归地求解这些子问题…

C++ 纯虚方法
1、纯虚方法解决什么样的问题,为什么要设计出纯虚方法? 考虑下面的需求,基类声明了一个方法,这个方法只针对具体的子类才有意义,比如Animal的Eat()方法,调用Animal的Eat方法是没有意义的。比如Dog吃肉&…

C++标准库中各种排序归纳
一、简介所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。我们在编程过程中会经常接触到排序,比如游戏中的排行榜等。C标准库中提供了各种不同的排序算法,这篇博客将逐一介绍。…
【数据结构】最小生成树 Prim算法 Kruskal算法
最小生成树应用场景: 假设以下场景,有一块木板,板上钉上一些钉子,这些钉子可以由一些细绳连接起来。假设每个钉子可以通过一根或者多根细绳连接起来,那么一定存在这样得情况,即用最少的细绳把所有的钉子连…

.net内存回收与Dispose﹐Close﹐Finalize方法
.net内存回收与Dispose﹐Close﹐Finalize方法 一. net的对象使用一般分为三种情况﹕ 1.创建对象2.使用对象3.释放对象 二.创建对象1.创建对象实际分为两个步骤﹕变量类型宣告和初始化对象 2.变量类型宣告(declare),如﹕ FileStream fs这行代码会在当前的变量作用域空间(栈或堆)…
SLAM学习--------相机位姿表示-李群李代数
slam 求解相机的位姿求解核心思想:将有约束的李群问题转换成无约束的李代数问题,然后使用高斯牛顿算法或者LM(列文伯格-马夸尔特法)求解。 人们找了很多以相机位姿为变量的误差函数,比如光度误差,重投影误差,3D几何误…
【ACM】杭电OJ 2063
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid2063 借鉴:http://blog.sina.com.cn/s/blog_ac5ed4f30101ewjk.html 二分图(二部图):图论中的一种特殊模型。设G(V,E)是一个无向图,如果顶点V可以分割…

AngularJs表单自动验证
angular-auto-validate 地址:https://github.com/jonsamwell/angular-auto-validate 引用: <script src"/Assets/JS/AngularJS/angular-auto-validate/dist/jcs-auto-validate.js" charset"utf-8"></script> 依赖&#…
AlwaysVisibleControlExtender
今天早上学习了AlwaysVisibleControlExtender控件,感觉还是不错。下午就写点东西,总结一下使用方法。 简单使用示例(显示当前时间) 1)在VS下,新建一个ASP.NET AJAX-Enabled Web Project项目,命名为AlwaysVisibleC…
Depth graph
深度相机 定义:可以直接获取场景中物体距离摄像头物理距离的相机。在计算机视觉系统中,三维场景信息为图像分割、目标检测、物体跟踪等各类计算机视觉应用提供了更多的可能性,而深度图像(Depth map)作为一种普遍的三维…

【ACM】POJ 1852
【问题描述】 一队蚂蚁在一根水平杆上行走,每只蚂蚁固定速度 1cm/s. 当一只蚂蚁走到杆的尽头时,立即从秆上掉落. 当两只蚂蚁相遇时它们会掉头向相反的方向前进. 我们知道每只蚂蚁在杆上的初始位置, 但是, 我们不知道蚂蚁向哪个方向前行. 你的任务是计算…

ZStack--通过Ansible实现全自动化
2019独角兽企业重金招聘Python工程师标准>>> Agent是一种常见的IaaS软件管理设备的方式;例如,ZStack使用Python agents去管理KVM主机。因为海量的设备,安装和升级agents成为巨大的挑战,所以大多数IaaS软件把这个问题留…
SVO 半直接视觉里程计
SVO 从名字来看,是半直接视觉里程计,所谓半直接是指通过对图像中的特征点图像块进行直接匹配来获取相机位姿,而不像直接匹配法那样对整个图像使用直接匹配。整幅图像的直接匹配法常见于RGBD传感器,因为RGBD传感器能获取整幅图像的…

css构造文本
1. 1. 文本缩进text-indent:值;值为数字,最常用的数值单位是px(像素),也可以直接是百分比!text-indent:100px;text-indent:10%;2. 文本对齐text-align:对其方式;可以的值为:left、center、right3. 文本行高…
【数据结构】单链表的逆序输出(两种方法)
第一种方法:转换指针方向 即:将一个已经创建好的单链表进行指针域的改变 今天突然被问到单链表逆序的问题,弄了好久才看出别人的程序有啥问题,就重新写了一遍。 今天才在CSDN客户端上看到美团的面试题是冒泡排序。 一个看似简单…

koa+mongoose基础入门
1.mongoose基本使用 1.安装mongodb npm install mongodb 2.引入mongodb数据表,连接mongodb,通过node来对mongodb进行异步的增删改查 const mongodb requrie(mongodb); mongodb.MongoClient.connect("mongodb://localhost/db1", function(err,…

视觉SLAM学习(三)--------SLAM 综述
SLAM概述 参考资料分享来自本人博客:https://blog.csdn.net/Darlingqiang/article/details/78840931 SLAM一般处理流程包括track和map两部分。所谓的track是用来估计相机的位姿,也叫front-end。而map部分(back-end)则是深度的构建,通过前面…
【数据结构】所有顶点对的最短路径 Floyd算法
所有顶点对的最短路径问题是指:对于给定的有向图G(V,E),求任意一对顶点之间的最短路径。 可以求解得到的 的递推公式: #include <stdio.h> #include <stdlib.h> const int FINITY 5000; const int M 20; typedef struct {ch…

backbone学习总结(二)
今天来看下backbone的路由控制的功能。其实个人感觉backbone,模块就那么几个,熟悉它的框架结构,以及组成,就差不多。 废话不多说,我们来看看还剩下的功能。 关于路由和历史管理 通过 Backbone.Router.extend 来创建路由…

人工智能--野人过河
课程简介 人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能的定义可以分为两部分,即“人工”和“智能”。“人工”比较好…

java对cookie的操作
原文:http://www.cnblogs.com/muzongyan/archive/2010/08/30/1812552.html java对cookie的操作比较简单,主要介绍下建立cookie和读取cookie,以及如何设定cookie的生命周期和cookie的路径问题。 建立一个无生命周期的cookie,即随着…

【ACM】POJ 3069
【问题描述】 Saruman the White must lead his army along a straight path from Isengard to Helm’s Deep. To keep track of his forces, Saruman distributes seeing stones, known as palantirs, among the troops. Each palantir has a maximum effective range of R u…

sparkCore源码解析之思维脑图
2019独角兽企业重金招聘Python工程师标准>>> 在学习sparkCore时,有几个模块的概念理解不是很透彻,故对照源码进行学习,并将结果一脑图的形式呈现,方便后续的持续学习。 详细内容见: sparkCore源码解析之blo…

pangilin 安装编译
make pangolin 的时候报错 ootsun:/home/sun/AR/orb/Pangolin-0.5/build# make [ 1%] Building CXX object src/CMakeFiles/pangolin.dir/log/packetstream.cpp.o /home/sun/AR/orb/Pangolin-0.5/src/log/packetstream.cpp: 在函数‘void pangolin::WaitUntilPlaybackTim…

PHP实现求阶乘
function factorial ($x){if ($x > 1) {$s $x * factorial ($x - 1);} else {$s $x;}return $s; }$x 100;echo $x."的阶乘的为".factorial($x);转载于:https://blog.51cto.com/chensenlin/1854679

【ACM】杭电OJ 2064(汉诺塔III)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid2064 思路: 1、将n-1个盘从A移到C f(n-1)次 2、将第n个从A移到B 1次 3、将n-1个盘从C移到A f(n-1)次 4、将第n个从B移到C 1次 5、将n-1个盘从A移到C f(n-1)次 #include<cstdio> #inclu…

文件上传至阿里云
public static String uploadFile2OSS(InputStream instream, String fileName) throws IOException {String imageName null;OSSClient ossClient null;try {ClientConfiguration conf new ClientConfiguration();// 请求超时时间设置conf.setConnectionTimeout(5000);// 请…