【总结】多个条件排序(pii/struct/bool)
pii
现在小龙同学要吃掉它们,已知他有n颗苹果,并且打算每天吃一个。
但是古人云,早上金苹果,晚上毒苹果。由此可见,早上吃苹果和晚上吃苹果的效果是不一样的。
已知小龙同学在第 i 天早上吃苹果能获得的愉悦值为 ai ,晚上吃苹果能获得的愉悦值为 bi 。
但是为了饮食均衡,小龙同学决定必须能选择恰好k天晚上吃苹果。
剩下的 n−k天早上吃苹果,他想知道他能够获得最大的愉悦值是多少。
输入描述:
第一行两个正整数 n,k 表示小龙同学有 nnn 个苹果,n 天吃完,他要选择其中 k 天在晚上吃苹果。
接下来 n 行,每行两个整数 ai,bi 表示小龙同学在第 iii 天早上吃苹果能获得的愉悦值为 ai ,晚上吃苹果能获得的愉悦值为 bi 。
输出描述:
输出一行一个整数表示答案。
示例1
输入
复制
4 3
3 1
4 5
2 3
1 5
输出
复制
16
#include<iostream>
#include<algorithm>
#include<cstring>using namespace std;typedef long long LL;
typedef pair<int,int> pii;const int N = 200010;pii a[N];
int n,k;bool cmp(pii a,pii b){return (a.second-a.first)>(b.second-b.first);
}int main(){cin>>n>>k;for(int i=0;i<n;i++){int x=0,y=0;cin>>x>>y;a[i]={x,y};}sort(a,a+n,cmp);int sum=0;for(int i=0;i<k;i++){sum+=a[i].second;}for(int i=k;i<n;i++){sum+=a[i].first;}cout<<sum;return 0; }
struct
小蓝对一个数的数位之和很感兴趣, 今天他要按照数位之和给数排序。当 两个数各个数位之和不同时, 将数位和较小的排在前面, 当数位之和相等时, 将数值小的排在前面。
例如, 2022 排在 409 前面, 因为 2022 的数位之和是 6, 小于 409 的数位 之和 13 。
又如, 6 排在 2022 前面, 因为它们的数位之和相同, 而 6 小于 2022 。
给定正整数 �,�n,m, 请问对 1 到 �n 采用这种方法排序时, 排在第 �m 个的元 素是多少?
输入格式
输入第一行包含一个正整数 �n 。
第二行包含一个正整数 �m 。
输出格式
输出一行包含一个整数, 表示答案。
样例输入
13
5
样例输出
3
#include<iostream>
#include<algorithm>
#include<cstring>using namespace std;typedef long long LL;const int N = 2000010;int n,x;struct st{int m;int sum;
}a[N];int ssum(int n){int s=0;while(n>0){s+=n%10;n/=10;}return s;
}bool cmp(st a,st b){if(a.sum==b.sum) return a.m<b.m;return a.sum<b.sum;
}int main(){cin>>n>>x;for(int i=1;i<=n;i++){a[i].m=i;int t=a[i].m;a[i].sum=ssum(t);} sort(a+1,a+n+1,cmp);cout<<a[x].m;return 0; }
bool
#include<iostream>
#include<algorithm>
#include<cstring>using namespace std;typedef long long LL;const int N = 2000010;int n;
int m;
int a[N];int sum(int a){int s=0;while(a>0){s+=a%10;a/=10;}return s;}bool cmp(int a,int b){if(sum(a)<sum(b)) return true;else if(sum(a)>sum(b)) return false;else if(sum(a)==sum(b)) {if(a<b) return true;else return false;}
}int main(){cin>>n>>m;int idx=0;for(int i=0;i<n;i++){a[idx++]=i+1;}sort(a,a+n,cmp);cout<<a[m-1];return 0; }
【总结】多个条件排序(pii/struct/bool)相关推荐
- Swift之深入解析如何进行多重条件排序
一.前言 在一个条件或者单个属性上进行排序非常简单, Swift 本身就有相关的功能. 如下所示,对 int 数组进行排序的例子: let numbers = [3, 5, 6, 1, 8, 2] l ...
- python 排序 sorted 如果第一个条件 相同 则按第二个条件排序
python 排序 sorted 如果第一个条件 相同 则按第二个条件排序 怎样遍历一个list 符合下列条件 1. 按照元组的第一个从小到大排序 2. 如果第一个相同 则按照元组第2个从大到小 ...
- python多条件排序
多条件排序及itemgetter的应用 曾经客户端的同事用as写一大堆代码来排序,在得知Python排序往往只需要一行,惊讶无比,遂对python产生浓厚的兴趣. 之前在做足球的积分榜的时候需要用到多 ...
- python中升序降序问题_飘逸的python - 有的升序有的降序的情况下怎么多条件排序...
之前在统计导出各区服玩家消费的时候需要进行升序降序混搭的多条件排序. 需求是这样的.区服从小到大排,如果区服相同,则按消费从大到小排. 实现方法是利用python的sort算法是稳定排序,对数据进行多 ...
- python 多条件 选择 算法_浅析Python中的多条件排序实现
多条件排序及itemgetter的应用曾经客户端的同事用as写一大堆代码来排序,在得知Python排序往往只需要一行,惊讶无比,遂对python产生浓厚的兴趣. 之前在做足球的积分榜的时候需要用到多条 ...
- 数组多重筛选条件排序方法
根据一个或者多个属性对数组进行排序,支持嵌套的属性.而且可以在每个条件中指定排序的方向,并支持传入比较函数. 安装 采用 npm 安装: $ npm install --save arr-sort 复 ...
- php,tp5关键词,分词模糊查询并根据查询条件排序
php,tp5关键词,分词模糊查询并根据查询条件排序 1.大概需求是我这边搜索"维修工",需要先搜索维修工再搜索维修,用一般模糊查询的话会导致维修的词出不来,所有这边需要先进行分词 ...
- Order by 多条件排序
首先了解一下基础知识: order by可以按一个或多个(最多16个)字段排序查询结果,可以是升序(ASC)也可以是降序(DESC),如果缺省,则是升序. order by中如果定义了多个字段,则按照 ...
- python sort多条件排序
单条件 sort / sorted 1.常规不多讲,a.sort() 在a原地排序,排序后a顺序改变, sorted(a)返回排序后的序列,a本身顺序不改变.可选为reverse, True标识倒序, ...
最新文章
- indesign如何画弧线_硬币画警车简笔画【图文+视频教程】
- jenkins docker 安装_docker 安装 Jenkins
- 敏捷开发-Scrum与精益相得益彰
- 六:Dubbo与Zookeeper、SpringMvc整合和使用
- dblclick,默认全选屏蔽
- 对话国际农民丰收节贸易会-林育庆:菲律宾谋定中国农业
- 20172329 2017-2018-2 《程序设计与数据结构》实验一报告
- Java问题集锦--The type StringEscapeUtils is deprecated
- 彩票模拟选号程序java_java课程设计-彩票购买抽奖程序
- 公司java框架让程序员变笨_框架会使程序员变笨吗?
- c++ gdal 矢量转栅格_QGIS中的矢量图形绘制机制
- SparkSession对象
- 华为认证hcia含金量_华为hcna认证含金量高吗 华为hcna认证用处大吗
- MDUI中Select初始化问题
- 高质量WordPress下载站模板5play主题源码
- 计蒜客 因数最多的数
- 微信小程序 - 获取用户当前位置信息(用于定位地址及获取地址等需求)
- jsp+servlet实现商城购物车功能
- windows下UHD安装教程
- Lanczos 重采样