rotate函数应用模板

例题Status - Codeforces Round 1084 (Div. 3) - Codeforcesd题

思路我们先把传送门之间的元素看出一个整体a,把传送门之外的元素看出一个整体b,那么我们先找到a中最小值,然后将这个最小值向左移动到成为第一个元素为止,当然是整体移动(rotate函数

复制代码
rotate(a.begin(),min_element(a.begin(),a.end()),a.end());

),接着在从b中找第一个大于min_element的位置,然后之间把a插入到这个位置前面就行了(insert函数

复制代码
b.insert(b.begin()+pos,a.begin(),a.end());

rotate函数:

1.模板1:把区间【最小值】移到最前面

vector<int> v;

// 最小值迭代器

auto mn_it = min_element(v.begin(), v.end());

// 旋转,最小值放开头

rotate(v.begin(), mn_it, v.end());

2.模板2:数组整体【左移 k 位】

// 左移k位模板

rotate(v.begin(), v.begin() + k, v.end());

3.模板3:局部区间旋转(只转中间一段)

// 转 [l, r) 区间,从第mid个位置开始当头

mid 位置及往后 → 搬到这段的最前面

l ~ mid-1 这一段 → 整体丢到这段的最后面

rotate(v.begin()+l, v.begin()+mid, v.begin()+r);

4.模板4:把末尾 k 个元素移到最前面(右移效果)

int k = 2;

rotate(v.begin(), v.end() - k, v.end());

相关推荐
南境十里·墨染春水2 小时前
C++ 工厂模式:从入门到进阶,彻底掌握对象创建的艺术
开发语言·c++·算法
@insist1232 小时前
系统架构设计师-实时性评价、调度算法与内核架构选型
算法·架构·系统架构·软考·系统架构设计师·软件水平考试
一只齐刘海的猫8 小时前
【Leetcode】找到字符串中所有字母异位词
算法·leetcode·职场和发展
海清河晏1118 小时前
数据结构 | 八大排序
数据结构·算法·排序算法
IronMurphy9 小时前
【算法五十七】146. LRU 缓存
算法·缓存
凌波粒10 小时前
LeetCode--108.将有序数组转换为二叉搜索树(二叉树)
算法·leetcode·职场和发展
liulilittle10 小时前
KCC:在 BBR 思路上的一次探索
网络·tcp/ip·算法·bbr·通信·拥塞控制·kcc
浦信仿真大讲堂10 小时前
达索系统SIMULIA Abaqus 2026接触和约束的增强新功能介绍
人工智能·python·算法·仿真软件·达索软件
点云侠10 小时前
PCL 生成三棱锥点云
c++·算法·最小二乘法