(C++)1025 PAT Ranking
#include<cstdio>
#include<algorithm>
#include<cstring>using namespace std;const int M = 100*300;struct testee{//考生 char reg_num[14];//准考证号 int score;//分数 int final_rank;//最终排名 int loc_no;//考场号 int local_rank;//考场内排名 }testees[M];bool cmp(testee a,testee b){if(a.score!=b.score){return a.score>b.score;}else{return strcmp(a.reg_num,b.reg_num)<0;}
}void print(testee t){printf("%s ",t.reg_num);printf("%d ",t.final_rank);printf("%d ",t.loc_no); printf("%d\n",t.local_rank);
}int main(){//读数据int n,i,j;//n为考场数int loc_num;//每个考场的人数,不断刷新 int no=0;//testees中的下标 scanf("%d",&n);for(i=1;i<=n;i++){//对于每个考场 scanf("%d",&loc_num);for(j=0;j<loc_num;j++){scanf("%s %d",&testees[no].reg_num,&testees[no].score);//注意这里第一个读入的是%stestees[no].loc_no=i;//赋予考场号 no++;}sort(testees+no-loc_num,testees+no,cmp);//对该考场内的学生排序 testees[no-loc_num].local_rank=1;//赋予第一名考场内名次 for(j=no-loc_num+1;j<no;j++){//赋予该考场其他考生名次 if(testees[j].score==testees[j-1].score){//如果和前一位考生分数相同,则名次与前一考生相同 testees[j].local_rank= testees[j-1].local_rank;}else{// 如果和前一位考生分数相同,则名次等于该考场内,该考生前的人数+1 testees[j].local_rank= -no+loc_num+j+1;//j+1-(no-loc_num)}} }//此时考生的总数为noprintf("%d\n",no);//对全部考场排序sort(testees,testees+no+1,cmp);testees[0].final_rank=1;//赋予第一名的考生全部考场的名次print(testees[0]);for(i=1;i<no;i++){//赋予全部考场其他考生名次 if(testees[i].score==testees[i-1].score){testees[i].final_rank= testees[i-1].final_rank;}else{testees[i].final_rank= i+1;}//由于已经按照全部考场名次拍好了顺序,可以边赋予名次,边打印print(testees[i]);} return 0;
}
经验:
①学会了混合使用 结构体+sort()+cmp()进行排序
②对每个考场进行排序时,要尤其注意数组下标(策略:确定开头和间隔即可)
③学会了排名的方法,与前者分数相同,等于前者的名次,与前者分数不同,等于前面的人数
相关文章:

模态视图(转)
转载请注明出处,原文网址:http://blog.csdn.net/m_changgong/article/details/8127894 作者:张燕广 模态视图不是专门的某个类,而是通过视图控制器的presentViewController方法弹出的视图,我们称为模态视图。 模态视图…
MHA二种高可用架构切换演练
高可用架构一 proxysqlkeepalivedmysqlmha优势,最大程序的降低脑裂风险,可以读写分离(需要开启相应的插件支持) 一、proxysql 1、安装 tar -zxvf proxysql.tar.gz -C /usr/local/chmod -R 700 /usr/local/proxysqlcd /usr/local/p…

如何关闭事件跟踪程序
最近经常遇到一些独享服务器用户反应自己的服务器联系万网工程师重起后,重新登陆时遇到的界面不知道该如何操作问题。当您看到此界面时,只需要在“注释”下面的空白处随意输入字符即可激活“确定”按钮,点击“确定”后可以进入系统。 这个界…

(C++)1015 德才论
#include<cstdio> #include<algorithm> #include<cstring> using namespace std; const int M 100000;struct Testee{char no[10];int de;int cai;int type;//第几类 }peo[M10];bool cmp(Testee a,Testee b){//比较顺序依次为总分,德分…

Vim命令相关
在shell中,记住一些常用的vim命令,会在操作时候事半功倍。 光标移动 h,j,k,l,h #表示往左,j表示往下,k表示往右,l表示往上 Ctrl f #上一页 Ctrl b #下一页 w, e, W, E #跳到单词的后面,小…

做科研的几点体会
刚刚开始做实验的时候,别人怎么说我就怎么做,每天在实验台旁干到深夜,以为这就是科研了。两个月过去,突然发现自己还在原地踏步。那种感觉,只能用”沮丧”来形 容。我开始置疑自己的行为和观念。感觉有种习惯的力量在束…

ICMP报文分析
一.概述:1. ICMP同意主机或路由报告差错情况和提供有关异常情况。ICMP是因特网的标准协议,但ICMP不是高层协议,而是IP层的协议。通常ICMP报文被IP层或更高层协议(TCP或UDP)使用。一些ICMP报文把差错报文返回给用户进…

(C++)1029 旧键盘
#include<cstdio> #include<cstring>const int M 80;//值得注意的地方是“按照发现顺序 ” //采取的最佳策略是,对于字符串1中的每一个字符,看在字符串2中是否出现int hashmap(char c){int res 0;if(0<c&&c<9){res c-0;}e…

深入理解 python 元类
一、什么的元类 # 思考: # Python 中对象是由实例化类得来的,那么类又是怎么得到的呢? # 疑问: # python 中一切皆对象,那么类是否也是对象?如果是,那么它又是那个类实例化而来的呢&…

使用.NET REACTOR制作软件许可证
使用.NET REACTOR制作软件许可证 原文:使用.NET REACTOR制作软件许可证软件下载地址:http://www.eziriz.com/downloads.htm 做一个简单的许可证系统,下面是具体步骤:1, OPEN ASSEMBLY打开项目可执行文件(debug文件夹里面exe文件…

(C++)CSP 201712-2 游戏
#include<cstdio> #include<algorithm> using namespace std;const int M 1000;int k;bool obsl(int x){if(x%k0||x%10k){return true;//淘汰 }else return false; }int main(){int n;//孩子的个数 scanf("%d%d",&n,&k);int i1;//现在报的数 in…

在wpf中运行EXE文件
最简单的方法:System.Diagnostics.Process.Start("路径");网上的其他方法: Process p new System.Diagnostics.Process(); p.StartInfo.FileName "路径"; p.StartInfo.Arguments ""; …

C语言程序试题
一个无向连通图G点上的哈密尔顿(Hamiltion)回路是指从图G上的某个顶点出发,经过图上所有其他顶点一次且仅一次,最后回到该顶点的路劲。一种求解无向图上哈密尔顿回路算法的基础实现如下: 假设图G存在一个从顶点V0出发的…

利用OWC创建图表的完美解决方案
http://onlytiancai.cnblogs.com/archive/2005/08/24/221761.html 转载于:https://www.cnblogs.com/Athrun/archive/2008/05/19/1202909.html

(C++)1020 月饼 简单贪心
#include<cstdio> #include<algorithm> using namespace std;int types,weight;//月饼的种类数 struct Mooncake{double totalPrice;double price;double weight;double sell;//卖出了多少 };bool cmp(Mooncake a,Mooncake b){return a.price>b.price; }int ma…

枚举,给枚举赋值
/**************枚举*****************/// public enum Colors{// Red,Yellow,Blue,Black,White// }// public static void main(String[] args) {// Colors c Colors.Yellow;// System.out.println(c);//输出枚举// System.out.println(c.ordinal());//输出枚举对应的序号…

青岛...沙尘暴!太可怕了~什么事儿都有!
受蒙古国和我国内蒙古地区出现沙尘暴天气的影响,28日,山东省青岛、烟台等地出现大范围浮尘天气,空气质量明显下降。 28日,一场大范围的浮尘天气影响到烟台,天空一片浑浊,能见度不足5公里,空气质…

面试题收集最新
Java高级程序员面试题------https://www.cnblogs.com/mengdou/p/7233398.html Java高级工程师面试题总结及参考答案-----https://www.cnblogs.com/java1024/p/8594784.html Java高级程序员(5年左右)面试的题目集----https://blog.csdn.net/fangqun663775…

(C++)1023 组个最小数 简单贪心
#include<cstdio> //#include<algorithm> //using namespace std; //用hash思想读入数字 //解决最高位放谁 //解决后面的位数 //输出 int main(){int key[10];for(int i0;i<10;i){scanf("%d",&key[i]);}//解决最高位for(int i1;i<10;i){if(ke…

Nginx 在centos linux 安装、部署完整步骤并测试通过
需要先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩。 1.选定源码目录 选定目录 /usr/local/ cd /usr/local/ 2.安装PCRE库 cd /usr/local/ wget http://exim.mirror.fr/pcre/pcre-8.02.tar.gz tar -zxvf pcre-8.02.tar.gz cd pcre-8.02 ./config…
Ubuntu16.04安装qt
5.11官方下载网站: http://download.qt.io/official_releases/qt/5.11/5.11.1/ 可以直接下载linux系统下的.run安装包: 安装方式:https://www.jb51.net/LINUXjishu/501994.html 切换到.run所在的目录,然后 第一步: chm…

好男人是怎么变坏的
十岁以前,就不说了,无非是淘气和不懂事。 十三、四岁的时候,开始对女孩有好感,但是那时候他离女孩远远的,并且以讨厌女孩自居,生怕被同伴嘲笑。 十五岁的时候,听到大人们说某某男人好花…

(C++)小明种苹果(续)
#include<cstdio>struct tree{int left;//剩余的果子数量bool fallfalse;//是否发生掉落int falls0;//这颗数前面的树(包括自身)发生掉落的次数 }trs[1000];int main(){int n;//树的总数scanf("%d",&n);for(int i0;i<n;i){//对于…

MySQL如何判别InnoDB表是独立表空间还是共享表空间
InnoDB采用按表空间(tablespace)的方式进行存储数据, 默认配置情况下会有一个初始大小为10MB, 名字为ibdata1的文件, 该文件就是默认的表空间文件(tablespce file),用户可以通过参数innodb_data_file_path对…

如何使用WindowsLiveWriter发文章
1.下载wlw最新版本http://download.microsoft.com/download/8/0/9/809604cd-bd08-42c8-b590-49c332059e64/writer.msi 2.在菜单中选择“Weblog”,然后选择“Another Weblog Service”。如图一 (图一) 3.在Weblog Homepage URL中输入你的Blog主…

很多学ThinkPHP的新手会遇到的问题
在模板传递变量的时候,很多视频教程都使用$v.channel的方式,如下: <a href"{:U(Chat/set,array(id>$v.channel))}" title"设置" class"btn btn-mini tip"> 这会导致URL在解析的时候出现问题ÿ…

(C++)1040 有几个PAT
#include<cstdio> #include<cstring> const int MOD 1000000007; const int maxn 100010;int main(){char str[maxn];scanf("%s",str);int len strlen(str);//数出每个元素左侧的P的个数int leftnumP[maxn];leftnumP[0] 0;for(int i1;i<len;i){if…

C#进行Visio二次开发之电气线路停电分析逻辑
停电分析,顾名思义,是对图纸进行停电的逻辑分析。在电气化线路中,一条线路是从一个电源出来,连接着很多很多的设备的,进行停电分析,有两个重要的作用:一是看图纸上的Shape元件是否连接正常&…

红芯丑闻揭秘者 Touko 专访 | 关于红芯丑闻的更多内幕……
专栏 | 九章算法 网址 | www.jiuzhang.com ❤ 红芯事件 近日,一则《自主研发的国产浏览器内核,红芯宣布获2.5亿C轮融资》的讯息再次将“国产自主创新”这一话题推向高潮,希冀之声群起。然好景不长,网友Touko在将红芯浏览器的exe文…

数学图形(1.20)N叶草
有N个叶子的草 相关软件参见:数学图形可视化工具,使用自己定义语法的脚本代码生成数学图形.该软件免费开源.QQ交流群: 367752815 vertices 1000 t from 0 to (2*PI) r 10 n rand_int2(3, 10) p 1 cos(n*t) sin(n*t)^2 x p*cos(t) y p*sin(t) N叶草面_1 vertices D1:5…