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

牛牛喜欢字符串【牛客tracker 每日一题】

牛牛喜欢字符串

时间限制:1秒 空间限制:256M

网页链接

牛客tracker

牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每日有题做,丰盈牛币日益多!

题目描述

牛牛现在有一个长度n nn的字符串(仅包含小写字母),他现在把这个字符串,每隔k kk个就分出来一个子串,比如[ 1 , k ] [1,k][1,k]为第一个子串,[ k + 1 , 2 k ] [k+1,2k][k+1,2k]为第二个、[ 2 k + 1 , 3 k ] [2k+1,3k][2k+1,3k]为第三个…(保证n nn%k = 0 k=0k=0)

牛牛想要把这些子串都变成一样的。他可以选择任意一个子串的任意一个字符进行更改,但是他太懒了,他想让你帮他算算最少要进行多少次操作。

输入描述:

第一行输入n ( 1 ≤ n ≤ 10 6 ) n(1≤n≤10^6)n1n106k ( 1 ≤ k ≤ n k(1≤k≤nk(1kn数据保证n nn%k = 0 k=0k=0),第二行输入该字符串。

输出描述:

输出需要的最少操作次数

示例1

输入:

6 2 abaaba

输出:

2

说明:

改为aaaaaa

示例2

输入:

6 3 abbabb

输出:

0

解题思路

首先明确字符串被等分为n / k n/kn/k个长度为k kk的子串,要让所有子串相同,等价于让所有子串的第j ( 0 ≤ j < k ) j(0≤j<k)j(0j<k)个位置的字符一致;解题时遍历每个位置i ii0 00k − 1 k-1k1),统计所有子串中该位置的26 2626个小写字母的出现频次,找出频次最大值m x mxmx,该位置的最少修改次数为子串总数n / k − m x n/k - mxn/kmx(保留出现最多的字符,其余修改);累加所有k kk个位置的最少修改次数,得到整体的最少操作次数。该贪心策略保证每个位置的修改数最优,累加后即为全局最优解,字符仅26 2626个,统计频次耗时固定,整体时间复杂度O ( n ) O(n)O(n),完美适配n ≤ 10 6 n≤10^6n106的规模,高效且精准计算出答案。

代码内容

#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefunsignedlonglongull;typedefpair<ll,ll>pii;constll p=1e9+7;constll N=2e5+10;intmain(){ll n,k,sum=0;cin>>n>>k;string s;cin>>s;for(ll i=0;i<k;i++){ll cnt[30]={0};for(ll j=i;j<n;j+=k)cnt[s[j]-'a']++;ll mx=0;for(ll i=0;i<26;i++)mx=max(mx,cnt[i]);sum+=n/k-mx;}cout<<sum<<endl;return0;}
http://www.jsqmd.com/news/221627/

相关文章:

  • CRNN OCR在医疗检验的应用:化验单自动识别系统
  • Sambert-HifiGan在公共场合语音提示系统的应用案例
  • CRNN OCR优化:如何减少1秒内的响应时间
  • 论文去AI痕迹别瞎折腾,这招十分钟把AI率稳稳压到个位数!
  • 8个提升效率的AI工具组合:Dify+ComfyUI+Image-to-Video联动
  • CRNN OCR在医疗检验的应用:化验单自动识别系统
  • 基于Thinkphp-Laravel的宁夏事业单位教师招聘考试可视化系统
  • Sambert-HifiGan vs VITS:中文语音合成模型对决
  • 高频电源布线注意事项:结合对照表的宽度选取策略
  • 开源可部署的大模型真的免费吗?
  • OCR识别质量评估:CRNN的量化指标
  • 【AI应用开发工程师】-AI编程防翻车指南
  • 工业设计评审优化:产品渲染图转多角度观看视频
  • 深入浅出讲解二极管的伏安特性曲线三阶段
  • 以为要延期毕业了?我用这招把AI率稳稳降到个位数
  • OpenMV H7图像处理:物体识别通俗解释
  • 语音合成延迟高?看看这个优化过的Flask架构
  • CAPL编写CAN通信测试脚本:从零实现完整示例
  • Transformer语音合成教程:基于ModelScope镜像,3步实现多情感中文TTS
  • AI视频创作流水线:Sambert-Hifigan负责旁白生成环节
  • 计算机毕设 java 社区服务系统 SSM 框架社区服务平台 Java 开发的社区服务全流程管理系统
  • 【机器人协调】市场化方法和A_Star算法仓库有效载荷运输的多机器人动态团队协调【含Matlab源码 14882期】含报告
  • 支持33语种互译的翻译引擎|HY-MT1.5-7B模型服务快速上手指南
  • 推理速度PK赛:三款主流图像转视频模型横向测评
  • RS422全双工模式详解:超详细版电气特性解析
  • 解决CANoe中27服务超时问题的核心要点分析
  • 中小企业降本方案:用开源TTS替代商业语音接口省70%费用
  • 语音合成日志监控体系:生产环境中不可或缺的运维组件
  • CRNN源码解读:从卷积网络到序列识别的演进之路
  • Sambert-HifiGan语音合成服务的多地域部署