当前位置: 首页> 科技> 数码 > 中国建筑工程考试网_国产4k高清电视十大排名_怎么自己搭建网站_网站建设是什么工作

中国建筑工程考试网_国产4k高清电视十大排名_怎么自己搭建网站_网站建设是什么工作

时间:2025/9/17 12:36:07来源:https://blog.csdn.net/jiang_wan_/article/details/147144376 浏览次数:0次
中国建筑工程考试网_国产4k高清电视十大排名_怎么自己搭建网站_网站建设是什么工作

题目描述

在这里插入图片描述

思路

这个和翻硬币的那个题很像,不过翻硬币只有翻或不翻,二元状态,但这个修改,可以修改成任何数,因为我们想要令修改次数最少,即某个位置上的某个字母出现的最多(看代码理解),那我们就把其余不是他的都改成最多的,这样就是修改最少了

代码

统计每个位置上出现的次数(因为修改是修改成重复的字符串,即abcebf,要想修改成2个重复的,即abcabc , 每个位置上要对应)
要读题!!如果不能整除!要输出-1!!!!!!!!!!不要看一半!

#include<bits/stdc++.h>using namespace std;const int N = 1e5+10;char s[N];
int cnt[N];
int main()
{int n;cin >> n;cin >> s;int len = strlen(s);  //求长度if(len % n != 0){cout<<"-1"<<endl;return 0;}int k = len / n;//每个划分后的字符串长度//如何统计每个位置的字符串出现的次数?//代码能力int maxx = 0;int ans = 0;for(int i = 0; i < k; i++){maxx = 0;memset(cnt, 0, sizeof cnt); //别忘了对cnt数组初始化for(int j = 0; j < n; j++){cnt[s[i+k * j] - 'a']++; //统计每个位置的,有点难想,不过可以记下来maxx = max(maxx, cnt[s[i+k * j] - 'a']); //直接比较了,也不用再遍历一遍了}ans += n - maxx;}cout<<ans<<endl;return 0;
}

总结

认真读题!!
有时候不满足输出-1可以混分!!

关键字:中国建筑工程考试网_国产4k高清电视十大排名_怎么自己搭建网站_网站建设是什么工作

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: