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

rotate函数

std::rotate

模版结构

template<classForwardIt>ForwardItrotate(ForwardIt first,ForwardIt middle,ForwardIt last);first:序列的起始迭代器。 middle:旋转后的序列起始位置(即原来的哪个位置的元素会变成第一个)。 last:序列的结束迭代器。

操作结果

原本在 [middle, last) 范围内的元素被移动到前面,原本在 [first, middle) 范围内的元素被移动到后面。

作用

std::rotate 是 C++ 标准库中极其强大且高效的工具,专门用于处理环形结构的位移。

示例

假设有一个序列 {1, 2, 3, 4, 5}。
若想左移 1 位(让 2 变成第一个):

autov={1,2,3,4,5};// middle 指向 2std::rotate(v.begin(),v.begin()+1,v.end());// 结果为 {2, 3, 4, 5, 1}

若想右移 1 位(让 5 变成第一个):

autov={1,2,3,4,5};// middle 指向 5std::rotate(v.begin(),v.end()-1,v.end());// 结果为 {5, 1, 2, 3, 4}

算法题的解决

这里推荐码题集的一道,一样的虫子。

思路

本题主要是对哈希表使用的考察,但是不得不承认利用rotate()函数找出当前序列的最小字典序确实方便,然后再查找该字典序即可。同时也使用了vector重载的运算符,用法和string差不多,但是如果这里使用string,会将1,23变成123,那么将无法分辨原始数据。

AC代码

#include<bits/stdc++.h>#definelllonglongusingnamespacestd;ll n;map<vector<ll>,ll>m;ll ans=0;vector<ll>get_min(vector<ll>v){vector<ll>minv=v;for(ll i=0;i<6;i++){rotate(v.begin(),v.begin()+1,v.end());minv=min(minv,v);}reverse(v.begin(),v.end());for(ll i=0;i<6;i++){rotate(v.begin(),v.begin()+1,v.end());minv=min(minv,v);}returnminv;}voidsolve(){cin>>n;for(ll i=1;i<=n;i++){vector<ll>a(6);for(ll j=0;j<6;j++){cin>>a[j];}a=get_min(a);if(m[a]>0)ans=1;elsem[a]++;}cout<<(ans==1?"found.":"No");}intmain(){ios::sync_with_stdio(0);cin.tie(0);solve();return0;}
http://www.jsqmd.com/news/449408/

相关文章:

  • 帝国cms提示Cann’t connect to DB! 的原因EmpireCMS
  • 02计算机组成原理-流水线技术概述
  • 2026企业商旅选哪个?6款高性价比平台推荐
  • 将盾CDN:Web应用防火墙(WAF)深度解析
  • 计算机毕业设计java基于Java实习网站购物的制作 基于B/S架构的实习网站商品交易与商家管理平台设计与实现 面向多角色的实习购物商城与促销活动管理系统开发
  • 网站提示“Notice: Use of undefined constant”错误说明
  • java第七讲(面向对象)
  • [Maui] 造轮子——前言、本地化
  • TDengine IDMP 运维指南 —— 部署架构
  • 做协议开发和设备联调,最怕的不是难,而是乱
  • 将盾CDN:DDoS攻击防护实战指南
  • 部署qq内的openclaw - Erebus
  • Docker 从入门到实战系列(四):镜像 / 容器导入导出、容器互联与 SpringBoot 微服务打包
  • 高阶前端面试题(含AI相关)
  • 【面试专栏|JVM虚拟机】CMS vs 其他垃圾收集器:核心差异+适用场景
  • nginx和docker面试题
  • 2026必学!AI大模型架构全解析:基础模型、微调与插件谁更重要?(收藏必备)
  • 01-02-03 C++编程知识 C++语言的IO(基础) cin和cout
  • 机房U位混乱难解?这个系统用数据说话,精准优化每一分资源!
  • 自定义类型 Traits
  • 实时网络同步技术
  • nodejs基于vue的天天足浴客人KTV包厢预约管理系统vue
  • 【必藏】大模型开发必看:Agent、传统编程与Workflow的本质区别及协同之道
  • 计算机毕业设计java基于Java语言的健身房信息管理系统基于B/S架构的健身房会员管理与课程预约系统设计与实现面向健身场馆的会员充值、器材使用与教练管理一体化平台开发
  • Python在金融科技(FinTech)中的应用
  • 基于SpringBoot+Vue的二手交易平台的系统设计与实现
  • 看完就会:专科生专属的AI论文网站 —— 千笔·专业论文写作工具
  • 写论文省心了 9个一键生成论文工具:MBA毕业论文+开题报告+学术写作深度测评
  • 3月7日(130-132题)
  • 鸿蒙应用开发UI基础第二十节:ArkTS 状态管理 V1 进阶 - 深层监听、跨级共享与渲染优化 - 鸿蒙