题目链接:https://codeforces.com/problemset/problem/1196/D2


题意:

q 个询问,每个查询将给你一个由 n 个字符组成的字符串s,每个字符都是 “R”、“G” 或 “B”。

求出更改初始字符串 s 中的最小字符数,以便更改后将有一个长度为 k 的字符串,该字符串是 s 的子字符串,也是无限字符串 “RGBRGBRGB…” 的子字符串

思路:

在无限字符串中有三种子串:“RGB...”,“GBR...”,“BRG...”

在这三种不同情况下,将所求字符串与原字符串比较

若不同,则贡献为 1,否则为 0

然后计算三种情况下的前缀和,枚举区间最小值

 #include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int sum[][]; int main()
{
int t,n,m;
string p="RGB",s;
cin>>t;
while(t--){
int ans=;
cin>>n>>m;
cin>>s;
for(int j=;j<;j++){
for(int i=;i<=n;i++){
if(s[i-]!=p[(i+j)%])
sum[i][j]=sum[i-][j]+;
else
sum[i][j]=sum[i-][j];
}
}
for(int i=;i<;i++)
for(int j=m;j<=n;j++)
ans=min(sum[j][i]-sum[j-m][i],ans);
cout<<ans<<endl;
}
return ;
}

最新文章

  1. 腾讯开放平台 手机QQ登录 错误码:110406 解决办法
  2. G1 垃圾收集器
  3. jQuery的加法运算.
  4. centos6.3安装MySQL 5.6(转)
  5. [改善Java代码]equals应该考虑null值的情景
  6. Asp.Net 之 基本控件FileUpload上传控件
  7. Java开发中常见的危险信号(中)
  8. CentOS 6使用iostat
  9. compilation 元素(ASP.NET 设置架构)
  10. php获取当天的开始时间和结束时间戳
  11. Python对于CSV文件的读取与写入
  12. 权限问题导致zabbix无法监控mysql
  13. PKUWC 2018 滚粗记
  14. 使用Excel VBA编程将网点的百度坐标转换后标注到高德地图上
  15. Linux启动时间优化-内核和用户空间启动优化实践
  16. hexo建站报错解决记录
  17. 用dockerfile创建jmeter的docker镜像
  18. 《Microsoft SQL Server 2012 T-SQL Fundamentals》
  19. 1.3 CPU简介
  20. Dubbo原理实现之与spring融合

热门文章

  1. 厉害了,Google大神每天写多少行代码?
  2. BFS+打印路径
  3. spring(六):spring中AOP的基本使用
  4. call和apply,函数伴侣
  5. HttpGet请求传递数组(集合)
  6. jquery+html实现前端的上传图片预览
  7. Java面向对象的特征与含义
  8. nodeJs express4 框架
  9. 创建 OpenStack云主机
  10. Calendar日历