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

相关推荐
拼好饭和她皆失1 小时前
基础算法--写给算法小白的模板指南:快速掌握核心代码,蓝桥杯必备模板
算法
AI科技星1 小时前
人类首张【全域数学公理体系】黑洞内部结构图—基于「0-1-∞」三元本源的全维深度解析
人工智能·算法·机器学习·数学建模·数据挖掘·量子计算
paeamecium1 小时前
【PAT甲级真题】- Recover the Smallest Number (30)
数据结构·算法·pat考试·pat
Dillon Dong1 小时前
【风电控制】变流器转矩控制回路深度解析:从指令生成到闭环控制
算法·变流器·风电控制
玛丽莲茼蒿1 小时前
Leetcode hot100 在排序数组中查找元素的第一个和最后一个位置【中等】
数据结构·算法
墨染天姬2 小时前
[AI]OPENAI的PPO算法
人工智能·算法
cici158742 小时前
含风光储燃的微电网能量管理系统(PSO优化)
算法
Das12 小时前
图像色彩迁移技术算法及基本原理
算法
发疯幼稚鬼2 小时前
二叉树的广度优先遍历
c语言·数据结构·算法·宽度优先