字符串长度2e5
前缀和 子串长度维护k 到后-前面的前缀和

#include<bits/stdc++.h>
#include<deque>
using namespace std;
#define IO ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)#define forn(i,n)  for(int i=0;i<n;i++)
#define rep(i,a,n) for(int i=a;i<=n;i++)
#define mp make_pair
#define pb push_back
#define fi first
#define se secondtypedef long long ll;
const int maxn=2e5+5;
const int INF=0x3f3f3f3f;
const ll inf=0x3f3f3f3f3f3f3f3f;
const int mod=1e9+7;int q,n,k;
string s,t="RGB";
int main()
{cin>>q;while(q--){cin>>n>>k;cin>>s;int ans=1e9;for(int i=0;i<3;i++){int cur=0;vector<int> res(n);for(int j=0;j<n;j++){res[j]=(s[j]!=t[(i+j)%3]);cur+=res[j];if(j>=k)cur-=res[j-k];if(j>=k-1)ans=min(ans,cur);}}cout<<ans<<endl;}return 0;
}

dp[3][maxn] 3种情况 长度=6e5
先构造 “RGB” “GBR” “BRG” 长度为n的字符串
三种情况与s比较不同 计数前缀和
3种情况 分别有结尾k->n的子串 取min

#include<bits/stdc++.h>
#include<deque>
using namespace std;
#define IO ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)#define forn(i,n)  for(int i=0;i<n;i++)
#define rep(i,a,n) for(int i=a;i<=n;i++)
#define mp make_pair
#define pb push_back
#define fi first
#define se secondtypedef long long ll;
const int maxn=2e5+5;
const int INF=0x3f3f3f3f;
const ll inf=0x3f3f3f3f3f3f3f3f;
const int mod=1e9+7;int q,n,m,k,ans;char s[maxn];
int dp[3][maxn];
char t[3][maxn],a[]={'R','G','B'};
int main()
{scanf("%d",&q);while(q--){scanf("%d %d %s",&n,&k,s+1);for(int i=0;i<3;i++){for(int j=1;j<=n;j++){t[i][j]=a[(i+j)%3];}t[i][n+1]='\0';}for(int i=0;i<3;i++){for(int j=1;j<=n;j++){dp[i][j]=dp[i][j-1]+(s[j]!=t[i][j]);}}ans=n; for(int i=0;i<3;i++){for(int j=k;j<=n;j++){     //枚举子串ans=min(ans,dp[i][j]-dp[i][j-k]);}}cout<<ans<<endl;}return 0;
}

最新文章

  1. ios单应用模式_如何为iOS 13暗模式设置应用
  2. DPI — 业务识别技术
  3. iOS容易造成循环引用的三种场景,就在你我身边!
  4. 有微型计算机广告,广告还会受欢迎?都是斯巴达克显卡惹的“祸”
  5. HALCON示例程序measure_metal_part_id.hdev使用xld边缘拟合检测零件加工是否合格
  6. Admob(6.12.x)符号未定义错误的解决方法(IOS)
  7. 西电2019计算机等级考试,西安电子科技大学2019《计算方法》期末考试试题
  8. STL 堆 鱼塘钓鱼
  9. mysql判断用户名和密码是否正确_怎样分别判断用户名和密码是否正确
  10. 书摘---创业36条军规3:创业人七大须知
  11. TPA4411RTJR 无电容立体声耳机驱动器 封装:QFN20
  12. 研究报告的数据都从哪里来?
  13. 过完双11,我去闲鱼当二道贩子
  14. 疫情居家想做点副业?推荐五个居家兼职,总有一个适合你
  15. esp32~MP3音频文件学习,app架构
  16. 《C语言》4小时不挂科【猴博士爱讲课】(学习笔记)
  17. 使用 rr 进行debug
  18. Ubuntu18.04使用RPLIDAR A2M12雷达出错的解决办法
  19. 农民伯伯 内容相当丰富!
  20. EPSON 自学机械手入门记录1(仅供参考)

热门文章

  1. [机缘参悟-74]:沟通技巧-无论在职场还是在家,尽量少用反问句
  2. 自己搭建无线音乐服务器,建立自己的音乐库 Aurender ACS10 音乐服务器
  3. 思科路由器的介绍及实战
  4. ADSL拨号工作原理
  5. 有了这十五款编程游戏,谁都可以学编程!
  6. ROS实验笔记之——JCV-450无人机初入门
  7. ME525+刷机2.3.6版本过程分享
  8. C/C++ 如何判断闰年,对判断闰年条件的疑惑解答
  9. 基因重组-冲刺日志(第一天)
  10. Java学习之AWT绘图“奥运五环”