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());

相关推荐
有点。4 小时前
C++03阶段练习(练习题)
数据结构·算法·图论
周末也要写八哥5 小时前
经典算法实例:游戏中弱角色的数量(二)
算法
是Yu欸6 小时前
鸿蒙PC移植:2048 从网页小游戏到 AI 桌面应用
大数据·人工智能·算法·数据挖掘·openharmony·codex
鹿角片ljp6 小时前
KV Cache 解析
java·算法
liliangcsdn6 小时前
IVOL与偏度因子的对比测量分析
算法
threerocks8 小时前
Jev 入门第一课
算法
西柚研究生1234568 小时前
论文分析17:YOLOv11_UAVNet:无人机航拍图像专用目标检测算法
人工智能·python·深度学习·算法·目标检测
hetao17338379 小时前
2026-09-17 hetao1733837 的刷题记录
c++·算法
午彦琳10 小时前
2026.9.17
数据结构·算法·leetcode
木井巳10 小时前
【记忆化搜索】不同路径
java·算法·leetcode·深度优先·剪枝·推荐算法