【大家来改错】原神波动

原神波动
Tunjiang是一位原神的忠实玩家,他非常喜欢纳西妲,于是在他刚抽到纳西妲的时候就很兴奋的使用她
去爬山,但是宿舍的网太差了,在他爬到一半的时候网络总会出现波动。
一旦掉线,Tunjiang就会从山上掉下来,于是他决定使用自己的流量去支撑自己玩原神;我们把他的游
戏时间分为n个时刻,对于每个时刻来说,如果这个时刻的网络是正常的,那么他就会爬一次,如果网
络发生了波动,那么他就会直接掉下山(或者在山底无法执行爬山的行为),他需要连续爬 次才能成
功的爬上山;Tunjiang可以在任意时刻将网切换成自己的流量,我们将切换网络使用的时间忽略不计,
并且假设他每个时刻使用流量玩原神的花费是一样的,由于月底Tunjiang的流量已经用超了,所以他拜
托你帮他算一下至少需要多少流量,他才能成功爬上山。

输入格式
第1行2两个正整数 ,表示有n个时刻,以及Tunjiang需要至少连续执行k次爬山的操作才能爬上山。
第2行包括一个仅由01构成的且长度为n的字符串s,s[i]表示第i个时刻的网络状态,0表示这个时刻网络发生波动,1表示这个时刻网络正常。

输出格式
一个整数ans,表示Tunjiang至少需要使用ans个时刻的流量才能爬上山。

数据范围
1<=k<=n<=5*10^5

输入样例1

6 3
101010

输出样例1

1

输入样例2

5 5
00100

输出样例2

4

解释
第一个样例中,我们在第一个为0的时刻开流量即可,所以至少需要使用 1个时刻的流量;
第二个样例中,我们需要在所有0的时刻开流量,所以答案为4。
提示:滑动窗口

#include<stdio.h>
#include<string.h>
void main() {
	int n, k, t, min;
	char s[500000];
	scanf("%d%d", &n,&k);
	gets(s);
	min = k;
	for (int i = 0; i <= n - k; i++)
	{
		t = 0;   //记录0的个数
		for (int j = i; j < i + k; j++)
		{
			if (s[j] == 0)
				t++;
		}
		if (t < min)
			min = t;   //记录所需最少流量
	}
	printf("%d", min);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值