尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

P14225 [ICPC 2024 Kunming I] 左移 2 个人题解

P14225 [ICPC 2024 Kunming I] 左移 2 个人题解
📅 发布时间:2026/6/19 1:46:27

题目传送门

题目大意:

给定一个字符串 \(s\),进行一次左移,即使字符串 \(s\) 变为 \(s_{(d+0)\bmod n},s_{(d+1)\bmod n},\cdots,s_{(d+n-1)\bmod n}\),然后求最少更改几个字符可以变成美丽字符串(即使字符串内相邻字符与不相同)。

解题方法:

这道题是一道贪心,我们发现一段连续且字符全都相等的字符串变为美丽字符串需要进行 \(\lfloor \frac{len}{2}\rfloor\) 次更改,我们在进行左移使可以使这样一段连续且字符全都相等的字符串分成两段,注意到向下取整的性质,即相邻的两个数,奇数向下取整是要比偶数向下取整小的,即我们在左移使如果把一段连续且字符全都相等的字符串分为两个长度为奇数的字符串是要比偶数更优的。在实现时我们可以把这样一段字符串左移至第一个字符与最后一个字符不同的位置,然后检查答案就行。

代码:

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=5e6+6;
inline int read(){int x=0,f=1;char c=getchar();while(c<'0' || c>'9'){if(c=='-')f=-1;c=getchar();}while(c>='0' && c<='9'){x=x*10+c-'0';c=getchar();}return x*f;
} //快读 
int T=read();
char ch[N];
vector<int> ans;
signed main(){while(T--){scanf("%s",ch);int n=strlen(ch);int j=0;if(ch[0]==ch[n-1]){	//左移使第一个数与最后一个数位置不同 for(j=0;j<n;j++){if(ch[j]==ch[n-1])ch[j+n]=ch[j];elsebreak;}}if(j==n)//如果这个序列全为一个字符,直接输出n/2 printf("%lld\n",n/2);else{ans.clear();//多测要清空!! int cnt=1;//一个字符也有长度 for(int i=j+1;i<=j+n-1;i++){if(ch[i]!=ch[i-1]){//如果不再连续,统计答案 ans.push_back(cnt);cnt=1;//长度清空 }elsecnt++;}ans.push_back(cnt);//把最后一个字符串统计上!! int sum=0;bool ok=false;for(int i=0;i<ans.size();i++){sum+=ans[i]/2;//统计答案 if(ans[i]%2==0)//如果是偶数,则可以拆分,答案-1 ok=true;}printf("%lld\n",max(sum-ok,0ll));}}return 0;
}

相关新闻

  • PySpark - OneHotEncoder
  • .NET 10 中 C# 14 和 F# 10 的新情况
  • 题解:Luogu P14522 【MX-S11-T3】空之碎物

最新新闻

  • 供应链规则引擎应用:JVS-Rules实现动态供应商评分
  • 嵌入式高精度低功耗ADC选型与应用:Sigma-Delta架构与TC3405实战
  • VS2019使用Microsoft Web Browser控件获取网页源码
  • 2026玉林防水补漏靠谱服务商盘点:屋面/厨卫/外墙/地下室渗水维修详解,适配桂东南盆地回南天防潮暴雨甄选指南 - 宅安选房屋修缮
  • Django毕设项目:基于 Django+Vue 的电信业务资费结算管理系统的设计与实现 基于 Django+Vue 的移动通信资费后台管控平台 (源码+文档,讲解、调试运行,定制等)
  • RE46C109低功耗报警驱动芯片:集成LDO与升压驱动的设计实战

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号