PAT甲题题解-1025. PAT Ranking (25)-排序
排序,求整体的排名和局部的排名
整体排序,for循环一遍
同时存储整体目前的排名和所在局部的排名即可
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string.h>
#include <cmath>
#include <queue>
#include <map>
using namespace std;
const int maxn=;
const int maxk=;
int local_Rank[maxn]; //local_Rank[i]表示第i个组目前的排名
int last_local_id[maxn]; //last_local_id[i]表示第i个组前一个在整体中的索引
struct Node{
long long id;
int score;
int group;
int ranks;
int local_rank;
bool operator<(const Node tmp)const{
if(score==tmp.score)
return id<tmp.id;
else
return score>tmp.score;
}
}stu[maxn*maxk];
int main()
{
int n,k;
scanf("%d",&n);
int cnt=;
long long id;
int score;
for(int i=;i<=n;i++){
scanf("%d",&k);
for(int j=;j<k;j++){
scanf("%lld %d",&id,&score);
stu[cnt].id=id;
stu[cnt].score=score;
stu[cnt].group=i;
cnt++;
}
}
printf("%d\n",cnt);
sort(stu,stu+cnt);
memset(local_Rank,,sizeof(local_Rank));
int global_rank=; //整体排名
for(int i=;i<cnt;i++){
if(global_rank==){
stu[i].ranks=;
global_rank=;
}
else{
if(stu[i].score==stu[i-].score){
stu[i].ranks=stu[i-].ranks;
global_rank++;
}
else{
global_rank++;
stu[i].ranks=global_rank;
}
}
int group=stu[i].group;
if(local_Rank[group]==){
stu[i].local_rank=;
local_Rank[group]=;
last_local_id[group]=i;
}
else{
int id=last_local_id[group];
if(stu[i].score==stu[id].score){
stu[i].local_rank=stu[id].local_rank;
local_Rank[group]++;
}
else{
local_Rank[group]++;
stu[i].local_rank=local_Rank[group];
last_local_id[group]=i;
}
}
printf("%013lld %d %d %d\n",stu[i].id,stu[i].ranks,stu[i].group,stu[i].local_rank);
}
return ;
}
PAT甲题题解-1025. PAT Ranking (25)-排序的更多相关文章
- PAT甲题题解-1129. Recommendation System (25)-排序
博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/6789819.html特别不喜欢那些随便转载别人的原创文章又不给 ...
- PAT甲题题解-1051. Pop Sequence (25)-堆栈
将1~n压入最多为m元素的栈 给出k个出栈序列,问你是否能够实现. 能输出YES 否则NO 模拟一遍即可,水题. #include <iostream> #include <cstd ...
- PAT甲题题解-1059. Prime Factors (25)-素数筛选法
用素数筛选法即可. 范围long int,其实大小范围和int一样,一开始以为是指long long,想这就麻烦了该怎么弄. 而现在其实就是int的范围,那难度档次就不一样了,瞬间变成水题一枚,因为i ...
- PAT甲题题解-1075. PAT Judge (25)-排序
相当于是模拟OJ评测,这里注意最后输出:1.那些所有提交结果都是-1的(即均未通过编译器的),或者从没有一次提交过的用户,不需要输出.2.提交结果为-1的题目,最后输出分数是03.某个题目从没有提交过 ...
- PAT甲题题解-1101. Quick Sort (25)-大水题
快速排序有一个特点,就是在排序过程中,我们会从序列找一个pivot,它前面的都小于它,它后面的都大于它.题目给你n个数的序列,让你找出适合这个序列的pivot有多少个并且输出来. 大水题,正循环和倒着 ...
- PAT甲题题解-1117. Eddington Number(25)-(大么个大水题~)
如题,大水题...贴个代码完事,就这么任性~~ #include <iostream> #include <cstdio> #include <algorithm> ...
- PAT甲题题解-1130. Infix Expression (25)-中序遍历
博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/6789828.html特别不喜欢那些随便转载别人的原创文章又不给 ...
- PAT甲题题解-1016. Phone Bills (25)-模拟、排序
博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/6789229.html特别不喜欢那些随便转载别人的原创文章又不给 ...
- PAT甲题题解-1021. Deepest Root (25)-dfs+并查集
dfs求最大层数并查集求连通个数 #include <iostream> #include <cstdio> #include <algorithm> #inclu ...
随机推荐
- 深入了解MyBatis二级缓存
深入了解MyBatis二级缓存 标签: mybatis二级缓存 2015-03-30 08:57 41446人阅读 评论(13) 收藏 举报 分类: Mybatis(51) 版权声明:版权归博主所 ...
- div+css ie6图片之间有间隙的问题
图片转换为快级元素就解决了 img{display:block;} 也可设置img属性img{vertical-align:top;}
- 7.Solr查询参数
一.基本查询 q 查询的关键字,此参数最为重要,例如,q=id:1,默认为q=*:*, fl (field list)指定返回哪些字段,用逗号或空格分隔,注意:字段区分大小写,例如,fl= id, ...
- SAP跟踪前台操作导致的后台查询语句
SAP跟踪前台操作导致的后台查询语句,通过这个可以查看前台对应了后台的数据库表,然后可以通过se11查看表内容,也可以删除表内容. 在sap升级的时候,首先需要拷贝正式的sap系统,然后将拷贝的系统中 ...
- ES6标准入门之数值的拓展解说
ES6提供了二进制和八进制数值的新写法,分别用前缀0b(或0B)和0o(或0O)表示. 0b111110111 === 503 // true 0o767 === ...
- undefined symbol: ap_log_rerror;apache2.4与weblogic点so文件
没法子啊:只能用 httpd-2.2.26 ============================== https://www.google.com.hk/#newwindow=1&q=un ...
- QGIS(2.18.15 源码)+Qt(5/5.9.3)+VS2015(X64)编译
由于工作要求,今年需要基于Qt搞跨平台的GIS.前期未曾接触过Qt,最近也简单学习了下,开源的QGIS是非常不错的学习资源,下了最新版的QGIS源码,不过在VS2015下却没法直接打开.网上查了很多资 ...
- OpenCV——图像的载入、显示、输出到文件和滑动条、鼠标操作
图像的载入.显示.输出到文件和滑动条 滑动条 示例: 鼠标操作
- centos 7 配置iptables(转) + iptabes规则理解
一.防火墙配置 1.检测并关闭firewall 1 2 3 4 5 systemctl status firewalld.service #检测是否开启了firewall systemctl st ...
- 四,ESP8266 TCP服务器(基于Lua脚本语言)
我要赶时间赶紧写完所有的内容....朋友的东西答应的还没做完呢!!!!!!!没想到又来了新的事情,,....... 配置模块作为TCP服务器然后呢咱们连接服务器发指令控制LED亮灭 控制的指令呢咱就配 ...