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