(easy version)

https://codeforces.com/contest/1196/problem/D1

(hard version)

https://codeforces.com/contest/1196/problem/D2

题解:前缀和|DP

/*
*@Author:   STZG
*@Language: C++
*/
#include <bits/stdc++.h>
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<string>
#include<vector>
#include<bitset>
#include<queue>
#include<deque>
#include<stack>
#include<cmath>
#include<list>
#include<map>
#include<set>
//#define DEBUG
#define RI register int
#define endl "\n"
using namespace std;
typedef long long ll;
//typedef __int128 lll;
const int N=200000+10;
const int M=100000+10;
const int MOD=1e9+7;
const double PI = acos(-1.0);
const double EXP = 1E-8;
const int INF = 0x3f3f3f3f;
int t,n,m,k,p,l,r,u,v;
int ans,cnt,flag,temp,sum;
char str[N],s[3][5]={"RGB","GBR","BRG"};
int dp[3][N];
int main()
{
#ifdef DEBUGfreopen("input.in", "r", stdin);//freopen("output.out", "w", stdout);
#endif//ios::sync_with_stdio(false);//cin.tie(0);//cout.tie(0);scanf("%d",&t);while(t--){scanf("%d%d",&n,&k);scanf("%s",str);ans=0;for(int j=0;j<3;j++)dp[j][k-1]=0;for(int i=0;i<k;i++)for(int j=0;j<3;j++)if(str[i]==s[j][i%3])dp[j][k-1]++,ans=max(ans,dp[j][k-1]);for(int i=k;i<n;i++)for(int j=0;j<3;j++)dp[j][i]=dp[j][i-1]+(str[i]==s[j][i%3])-(str[i-k]==s[j][(i-k)%3]),ans=max(ans,dp[j][i]);cout<<max(0,k-ans)<<endl;}#ifdef DEBUGprintf("Time cost : %lf s\n",(double)clock()/CLOCKS_PER_SEC);
#endif//cout << "Hello world!" << endl;return 0;
}

Codeforces 1196D RGB Substring相关推荐

  1. [题解]RGB Substring (hard version)-前缀和(codeforces 1196D2)

    题目链接:https://codeforces.com/problemset/problem/1196/D2 题意: q 个询问,每个查询将给你一个由 n 个字符组成的字符串s,每个字符都是 &quo ...

  2. Codeforces 1015F Bracket Substring AC自动机 + dp

    Bracket Substring 这么垃圾的题怎么以前都不会写啊, 现在一眼怎么就会啊.... 考虑dp[ i ][ j ][ k ][ op ] 表示 已经填了 i 个空格, 末尾串匹配到 所给串 ...

  3. Codeforces 919 D Substring

    题目描述 You are given a graph with nn nodes and mm directed edges. One lowercase letter is assigned to ...

  4. java 验证码图片识别_JavaSE图像验证码简单识别程序详解

    本文为大家分享了JavaSE图像验证码简单识别程序,供大家参考,具体内容如下 首先你应该对图片进行样本采集,然后将样本进行灰度处理,也就是变成黑白两色. 然后你就可以使用该类,对目标文件进行分析.具体 ...

  5. share extension 不显示_这几项超好用的云开发扩展能力,别说你还不知道!

    云开发CloudBase是云开发团队为开发者提供的一站式云服务,旨在降低开发者使用云服务的门槛,助力开发者快速开发应用.在具体的开发过程中,云开发提供了许多实用的扩展能力,包含图像标签.图像安全审核. ...

  6. base64 不一致_这几项超好用的云开发扩展能力,别说你还不知道!

    云开发CloudBase是云开发团队为开发者提供的一站式云服务,旨在降低开发者使用云服务的门槛,助力开发者快速开发应用.在具体的开发过程中,云开发提供了许多实用的扩展能力,包含图像标签.图像安全审核. ...

  7. 线性结构 —— 前缀和

    [概述] 前缀和是一种及其优秀的线性结构,也是一种重要的思想,能极大的降低区间查询的时间复杂度. 前缀和又分为一维前缀和.二维前缀和,其与差分数组密切相关,关于差分数组:点击这里 [一维前缀和] 假设 ...

  8. 字符串处理 —— 模拟与暴力

    [概述] 在某些题目中,需要对字符串进行处理,不需要很复杂的算法,只需要按照题意进行模拟或暴力枚举即可得出答案. [例题] 1.简单模拟 Minimum Ternary String(CF-1009B ...

  9. 原生JS搭配canvas模式开发的调色盘

    之前做了一版纯div版的,有同学反应加载速度太慢.无可否认,1W多个div能不慢么.做那个版本的用意在于...好玩, 好了,同样废话不多说,这次先上图吧! 风格是学习的谷歌的,一眼就看得出来,由于IE ...

最新文章

  1. UE4制作程序背景游戏 Make a game with Procedural Backgrounds in UE4
  2. 九.redis学习笔记之虚拟内存
  3. 这就是编程的终极难题? | 每日趣闻
  4. PMP-【第8章 项目质量管理】-2021-2-12(180页-199页)
  5. python统计文本中单词出现次数
  6. openresty开发系列24--openresty中lua的引入及使用
  7. 计算机组成测试题目及答案,计算机组成原理期中测试试卷一(含题目和答案)
  8. Linux(debian7)错误集锦(二)之安装Gnome报错Failed to start unit user@1000.service
  9. 数字电路 模拟电路 先学哪个_国外经典电子资料:电子电路分析与设计
  10. 计算机共享文件怎样添加,怎么添加另一台电脑的共享文件夹
  11. 解决Qt-至少需要一个有效且已启用的储存库 问题
  12. 匿存函数,内存函数,递归函数,二分法查找
  13. 使用Springboot整合Vue项目案例—登录界面
  14. 海康大华等传统摄像机的RTSP流通过拉转GB/T28181输出级联到国标流媒体服务平台
  15. 一些音视频相关概念学习笔记
  16. 2020考研数学一大纲之完全解析(一)
  17. 游戏陪玩小程序开发制作
  18. 给 QuickTime 播放器添加方向键快进/快退功能
  19. 使用pygame制作双人五子棋小游戏
  20. python人名统计_「姓名分析」Python|美国婴儿姓名分析 - seo实验室

热门文章

  1. java 静态变量 存储_Java学习笔记9---类静态成员变量的存储位置及JVM的内存划分...
  2. java method 创建_java中创建对象的5种方式
  3. mysql aes java解密_加密/解密的Java函數,如Mysql的AES_ENCRYPT和AES_DECRYPT
  4. scala maven plugin
  5. mac笔记本怎么外接显示屏_苹果MAC笔记本怎么外接显示器?
  6. equals变量在前面和后面的区别,equals已知(存在实际值)的变量在前的好处
  7. HTML中From表单的常用type属性及用法【较全】
  8. html css 磁贴,使用JS配合CSS实现Windows Phone中的磁贴效果
  9. jcreator编译多个java_java用JCreator怎么都编译不过去!
  10. mysql 复杂统计_MYSQL复杂查询