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

排序刷题12 -双向排序

题目来源:[蓝桥杯 2021 省 B] 双向排序 - 洛谷

最近开始刷蓝桥杯的题目了,本小白表示有些题目好难阿,研究生组哭晕(((φ(◎ロ◎;)φ)))。这道题自己做只能达到60分,本小白表示100分优化不会惹,先拿点分后面再看别人的思路吧。

解题思路:想到了用sort()函数解决,发现也就60分,超时了。不过没关系能拿一点是一点。(hahahaha~,心态有点好)

解题步骤:

  1. 初始化一个大小为 n+1 的数组(考虑到序列是从1开始的),用于记录每个位置的元素值。
  2. 遍历操作指令,根据操作类型更新序列:
    • 当 p_i = 0 时,表示需要将前 q_i 个元素降序排列。这里可以标记一个断点 q_i,表示 1到 q_i 需要降序排列。
    • 当 p_i = 1 时,表示需要将从 q_i 到 n$的元素升序排列。同样,标记一个断点 q_i,表示 q_i到 n 需要升序排列。
  3. 最后,根据这些断点信息,构造最终的序列。
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;int main()
{// 读入序列长度 n 和操作次数 mint n, m;cin >> n >> m;// 初始化序列 arr,按照题目要求填充从 1 到 n 的整数vector<int> arr(n);for (int i = 0; i < n; i++){arr[i] = i + 1;}// 对每一个操作进行处理for (int i = 0; i < m; i++){int p, q;cin >> p >> q;  // 读入操作类型 p 和操作参数 q// 根据操作类型对序列的相应部分进行排序if (p == 0)// p 为 0 时,对前 q 个元素执行降序排序sort(arr.begin(), arr.begin() + q, greater<int>());else// p 为 1 时,对从第 q 个元素到末尾的部分执行升序排序sort(arr.begin() + q - 1, arr.end());}// 输出最终的序列for (int i = 0; i < n; i++){cout << arr[i] << " ";}cout << endl;return 0;
}

 

相关文章:

  • Redis之一: 简介及环境安装搭建
  • CNN-LSTM-Attention混合神经网络归时序预测的MATLAB实现(源代码)
  • ESP-VO 论文阅读
  • Fastjson2 <== 2.0.26反序列漏洞
  • redis 为什么会阻塞
  • 二刷代码随想录算法训练营第七天 |454.四数相加II 383. 赎金信 15. 三数之和 18. 四数之和
  • Python 编辑工具 Jupyter notebook
  • PTA天梯 L1-087 机工士姆斯塔迪奥
  • SQL中把datetime 转为字符串
  • 多模态论文阅读--V*指导视觉搜索成为多模态大语言模型的核心机制
  • Java 石头剪刀布小游戏
  • 【MySQL】查询语句:条件、排序和分页
  • Thinkphp框架漏洞--->5.0.23 RCE
  • 通过vue实现左侧树状右侧的组件
  • MySQL数据库基本操作(一)
  • 【个人向】《HTTP图解》阅后小结
  • Apache的基本使用
  • canvas 五子棋游戏
  • CSS盒模型深入
  • CSS魔法堂:Absolute Positioning就这个样
  • css系列之关于字体的事
  • echarts花样作死的坑
  • JAVA并发编程--1.基础概念
  • Solarized Scheme
  • vue-cli3搭建项目
  • vue-cli在webpack的配置文件探究
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 从零开始在ubuntu上搭建node开发环境
  • 番外篇1:在Windows环境下安装JDK
  • 前端设计模式
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 写代码的正确姿势
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • (02)Hive SQL编译成MapReduce任务的过程
  • (4) PIVOT 和 UPIVOT 的使用
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (待修改)PyG安装步骤
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (附源码)ssm码农论坛 毕业设计 231126
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (九)c52学习之旅-定时器
  • (七)c52学习之旅-中断
  • (四)模仿学习-完成后台管理页面查询
  • (一) springboot详细介绍
  • (转)LINQ之路
  • (转载)(官方)UE4--图像编程----着色器开发
  • .cn根服务器被攻击之后
  • .gitignore文件_Git:.gitignore
  • .NET MVC之AOP
  • .Net Web项目创建比较不错的参考文章
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .Net6 Api Swagger配置
  • .NET使用HttpClient以multipart/form-data形式post上传文件及其相关参数