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

相关推荐
秋天的怀念_David1 小时前
第二十一夜 · 数字黑洞与西西弗斯的惩罚
java·程序人生·算法
碧海银沙音频科技研究院2 小时前
在PC电脑上用Whisper→Marian算法实现离线语音翻译功能
算法·whisper
niyongsheng2 小时前
3D 装箱算法工程化:数据结构、放置启发式与支撑规则
数据结构·算法·rust
j7~5 小时前
【穷举、深搜与回溯算法】一棵决策树讲透全排列与子集
数据结构·c++·算法·leetcode·回溯·递归
傅科摆 _ py5 小时前
DP,贪心,堆和栈,二分力扣复习
开发语言·python·算法
Shaoshing6 小时前
LeetCode100 42.接雨水
java·算法·leetcode
域限奇点访客6 小时前
用AI生成问卷的网站怎么选?看题目录入结构、题型映射和生成后的校验
算法
not coder7 小时前
一文讲通--从树到红黑树
数据结构·算法
octopus_c7 小时前
C++ 入门
开发语言·c++·算法
ZhengEnCi8 小时前
2026年10月30日AI早报:Gemini 4 Carbon登顶、DeepSeek融资1055亿、智元机器人上岗实测
人工智能·算法