当前位置: 首页 > news >正文

算法-多条件排序

 1、数对排序的使用

pair<ll,ll> a[31];//cmp为比较规则
ll cmp(pair<ll,ll>a,pair<ll,ll>b){if(a.first!=b.first)return a.first>b.first;else return a.second<b.second;
}//按照比较规则进行排序
sort(a+1,a+31,cmp);

 2、具体例题

 输入样例:

3
1 1
2 2
9 3
6 4
7 5
11 6
3 7
13 8
8 9
16 10
4 11
19 12
17 13
5 14
12 15
15 16
14 17
10 18
20 19
18 20
5 11
10 12
30 13
22 14
1 1
28 20
21 16
26 17
2 2
24 3
4 4
29 5
8 6
7 15
6 7
3 8
9 9
25 10
23 19
27 18
19 20
26 19
27 18
18 17
21 16
12 15
28 14
20 13
17 12
14 11
13 10
23 9
29 8
22 7
30 6
15 5
24 4
25 3
16 2
11 1

输出样例:

1 50
2 42
11 39
24 34
16 31
6 29
9 29
25 28
29 27
3 25
4 25
8 25
13 22
30 21
7 20
15 19
22 19
5 15
17 15
14 12
23 12
10 10
12 10
19 8
20 8
21 8
28 6
26 4
27 4
18 3

 思路:分数不同,按分数降序排列;分数相同,按编号升序排列。

#include<iostream>
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
pair<ll,ll> a[31];
bool vis[31];
ll cmp(pair<ll,ll>a,pair<ll,ll>b){if(a.first!=b.first)return a.first>b.first;else return a.second<b.second;
}
int main(){ll n;cin>>n;for(ll i=1;i<=30;i++){a[i].first=0;//分数a[i].second=i;//编号}memset(vis,false,sizeof(vis));ll b[21]={0,25,21,18,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0};while(n--){for(ll i=1;i<=20;i++){ll c,p;cin>>c>>p;a[c].first+=b[p];vis[c]=true;}}sort(a+1,a+31,cmp);for(ll i=1;i<=30;i++){if(vis[a[i].second]){cout<<a[i].second<<" "<<a[i].first<<endl;}}
}

相关文章:

  • Docker构建Vite项目内存溢出:从Heap Limit报错到完美解决的剖析
  • 【win | docker开启远程配置】使用 SSH 隧道访问 Docker的前操作
  • Docker、Wsl 打包迁移环境
  • JavaScript ES6 解构:优雅提取数据的艺术
  • ⚡️ Linux Docker 基本命令参数详解
  • LINUX67 FTP 3客户服务系统;FTP 上传、下载测试调试
  • 基于vscode,idea,java,html,css,vue,echart,maven,springboot,mysql数据库,在线考试系统
  • 多线程中的泛型应用深度解析:类型安全与并发编程的完美融合
  • CADisplayLink、NSTimer、GCD定时器
  • Opencv查找图形形状的重要API讲解
  • MySQL中的内置函数
  • NLP学习路线图(三十一): 迁移学习在NLP中的应用
  • 【Go语言基础【15】】数组:固定长度的连续存储结构
  • 深入了解UDP套接字:构建高效网络通信
  • Mac版Visual Studio Code Copilot 无法使用的解决方法
  • 用Ai学习wxWidgets笔记——在 VS Code 中使用 CMake 搭建 wxWidgets 开发工程
  • PDF转PPT转换方法总结
  • 低功耗MQTT物联网架构Java实现揭秘
  • 【区块链基础】区块链的 Fork(分叉)深度解析:原理、类型、历史案例及共识机制的影响
  • grep、wc 与管道符快速上手指南
  • 昆钢建设集团网站/成都seo培训
  • 如何做中介网站/网站首页制作网站
  • 自己设计logo网站/seo云优化外包
  • 有没有做批发的网站/网站推广该怎么做
  • 做淘宝网站/想在百度上推广怎么做
  • 软件开发培训班哪个好/seo