上海计算机学会2022年6月月赛C++丙组T4连续的零

题目描述

给定一个 01 序列 b1​b2​...bn​,01 的意思就是这个数列里只有 01

请问最少需要将多少个 1 改成 0,序列里会出现至少 k 个连续的 0

输入格式
  • 第一行:两个整数 n 与 k。
  • 第二行:n 个字符表示 b1b2...bn,保证只出现 01
输出格式

单个整数:最少要改多少个 1,才会出现 k 个连续的 0

数据范围
  • 对于 30%30% 的数据,1≤k≤n≤20;
  • 对于 60%60% 的数据,1≤k≤n≤2000;
  • 对于 100%100% 的数据,1≤k≤n≤500,000
样例数据

输入:

6 3

101010

输出:

1

说明:

改最后一个1

输入:

5 5

00100

输出:

1

题解:

本题关键点:滑动窗口法来解。代码如下。

cpp 复制代码
#include <iostream>
using namespace std;
int  main(){
	string s;	
	int size=0;
	int n, k;
	cin >> n >> k;
	cin >> s;
	int ans=n;
	for(int left=0,right=0;right<n;right++){
		//进窗口
		if(s[right]=='1') size++;
		if(right-left==k){
			//出窗口
			if(s[left]=='1') size--;
			left++;
		}
		if(right>=k-1){
			ans=min(ans,size);
		}	
	}
	cout<<ans<<endl;
	return 0;
}
相关推荐
励志不掉头发的内向程序员16 分钟前
STL库——string(类函数学习)
开发语言·c++
图灵学术计算机论文辅导35 分钟前
论文推荐|迁移学习+多模态特征融合
论文阅读·人工智能·深度学习·计算机网络·算法·计算机视觉·目标跟踪
threejs源码翻译官1 小时前
显微镜图像处理【优化】- 使用图像风格迁移技术放大图像细节
算法
强德亨上校2 小时前
贪心算法(Greedy Algorithm)详解
算法·贪心算法
浮灯Foden3 小时前
算法-每日一题(DAY13)两数之和
开发语言·数据结构·c++·算法·leetcode·面试·散列表
淡海水3 小时前
【原理】Struct 和 Class 辨析
开发语言·c++·c#·struct·class
西工程小巴3 小时前
实践笔记-VSCode与IDE同步问题解决指南;程序总是进入中断服务程序。
c语言·算法·嵌入式
Tina学编程4 小时前
48Days-Day19 | ISBN号,kotori和迷宫,矩阵最长递增路径
java·算法
Moonbit4 小时前
MoonBit Perals Vol.06: MoonBit 与 LLVM 共舞 (上):编译前端实现
后端·算法·编程语言
青草地溪水旁4 小时前
UML函数原型中stereotype的含义,有啥用?
c++·uml