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

打卡信奥刷题(3141)用C++实现信奥题 P7629 [COCI 2011/2012 #1] SORT

P7629 [COCI 2011/2012 #1] SORT

题目描述

考虑如下的排序算法:

reverse-sort(序列 a) 当 (a 未按非递减顺序排列时) 将 a 划分为最少个数的斜率段 对于每一个长度大于 1 的斜率段 反转(该斜率段)

定义slopea的递减子串,reverse()将翻转一段序列。

给定一个1 ∼ N 1 \sim N1N的排列,保证在第一次划分时每个slope的长度都为偶数,求如果使用这种排序算法对给定的排列进行排序,需要调用多少次reverse(slope)

输入格式

输入的第一行包含一个正整数N NN

第二行包含N NN个互不相同的的正整数,代表待排序的排列。

输出格式

输出一行一个整数,表示reverse(slope)需要被调用的次数。

输入输出样例 #1

输入 #1

2 2 1

输出 #1

1

输入输出样例 #2

输入 #2

4 4 3 2 1

输出 #2

1

输入输出样例 #3

输入 #3

4 3 1 4 2

输出 #3

3

说明/提示

【数据范围】

对于100 % 100\%100%的数据,2 ≤ N ≤ 10 5 2 \le N \le 10^52N105

【说明】

本题分值按 COCI 原题设置,满分140 140140

题目译自COCI2011-2012 CONTEST #1T5 SORT

C++实现

#include<cstdio>usingnamespacestd;constintN=100005;intn,a[N],c[N];longlongans;voidswap(int&x,int&y){x^=y;y^=x;x^=y;}//交换两个元素voidreverse(intl,intr){//翻转区间[l,r]内的元素for(inti=l;i<=r&&(i<<1)<l+r;++i)swap(a[i],a[r+l-i]);++ans;//顺便统计答案}intlowbit(intx){returnx&-x;}//下面三行是经典的树状数组voidupdate(inti,intv){for(;i<=n;i+=lowbit(i))c[i]+=v;}intgetsum(inti){intans=0;for(;i;i-=lowbit(i))ans+=c[i];returnans;}intmain(){scanf("%d",&n);intlas=1;scanf("%d",&a[1]);//先将序列按要求翻转一次for(inti=2;i<=n;++i){scanf("%d",&a[i]);if(a[i]>a[i-1]){reverse(las,i-1);las=i;}}reverse(las,n);for(inti=n;i>=1;--i){ans+=getsum(a[i]);update(a[i],1);}printf("%lld\n",ans);return0;}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

http://www.jsqmd.com/news/672367/

相关文章:

  • 音频智能切片终极指南:告别手动剪辑的完整解决方案
  • 从“占座”到防御:用Python模拟Slowloris攻击,并聊聊Web服务器(Nginx/Apache)该怎么配置才安全
  • 医院新生儿出生证明人证核验方案-打印A4核验信息表单 - 智能硬件-产品评测
  • Win11Debloat:专业级Windows系统优化与隐私保护完整解决方案
  • 如何高效使用fanqienovel-downloader:5个实用技巧快速构建个人离线小说库
  • GSE宏工具终极指南:快速掌握魔兽世界技能自动化的完整解决方案
  • 别再死记硬背公式了!用HEC-RAS 1D恒定流模拟,手把手教你理解能量方程与动量方程的区别
  • Memobase快速入门指南:5分钟搭建你的第一个用户配置文件
  • 2026年SAT一对一培训哪家好?专业机构及线下高端一对一课程推荐 - 品牌2026
  • Redis事务处理详解:确保数据一致性的关键策略
  • 简单三步实现Windows完美远程桌面连接Linux:xrdp终极指南
  • 手把手教你部署Qwen3-VL-8B:上传图片就能智能问答的AI助手
  • 别再只盯着GCN了!用Python+PyTorch复现ASTGCN,实测METR-LA数据集避坑指南
  • D3KeyHelper终极指南:如何用AutoHotkey打造暗黑3自动化战斗系统
  • G-Helper:如何用轻量级工具解决华硕笔记本的性能管理难题
  • 2026年4月万国官方售后网点亲测+避坑指南:实地横评与数据溯源报告(含迁址/新开)|老司机分享全流程记录 - 亨得利官方服务中心
  • Objectron开发者指南:如何扩展数据集支持新的物体类别
  • 如何将你的网页游戏变成专业桌面应用:Twine App Builder跨平台打包指南
  • 淘宝、1688 拍立淘(以图搜货)接口接入全解:从实战心得到落地教学
  • OWASP Nettacker高级配置技巧:硬件资源优化与性能调优终极指南
  • 3分钟上手!RPG Maker解密工具全攻略:轻松提取游戏资源的终极指南
  • React同构HTTP请求实战:use-http在Next.js中的完美应用
  • 构建极致性能:Voron 2.4 CoreXY架构3D打印机的5大创新设计
  • 3D-ResNets-PyTorch实战指南:7个关键技巧助你避开动作识别常见陷阱
  • 从D0到D3:手把手教你用ACPI View工具分析Windows/Linux下的设备电源状态
  • 【西北农林科技大学、西京学院主办,ACM出版】第二届智慧农业与人工智能国际学术会议(SAAI 2026)
  • 星露谷物语模组加载器SMAPI终极指南:从零开始打造你的梦幻农场
  • 终极React Live测试指南:为实时编辑组件构建可靠单元测试的5个关键策略
  • 别再乱用CrossEntropyLoss了!PyTorch分类任务中标签与输入的5个常见误区与正确写法
  • 2026年SAT冲刺提分机构推荐:快速提分、快速出分、高效提分辅导机构盘点 - 品牌2026