专栏文章

AT_abc380_c

AT_abc380_c题解参与者 3已保存评论 3

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
3 条
当前快照
1 份
快照标识符
@mir3rb2j
此快照首次捕获于
2025/12/04 15:16
3 个月前
此快照最后确认于
2025/12/04 15:16
3 个月前
查看原文

思路

模拟即可。
Si=1S_i=1Si1=0S_{i-1}=0 时,发现这肯定是一个整块的分割位置。
计数一下即可。

代码

CPP
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	string s;
	int k,n,cnt=0;
	cin>>n>>k>>s;
	s=' '+s;
	for(int i=1;i<=n;i++)
	{
		if(s[i]=='1'&&s[i-1]!='1')cnt++;
		if(cnt==k)
		{
			string t0;
			int j;
			for(j=i-1;j>=1;j--)
			{
				if(s[j]=='1')break;
				t0+='0';
			}
			for(int k=1;k<=j;k++)cout<<s[k];
			int k;
			for(k=i;k<=n;k++)
			{
				if(s[k]!='1')break;
				cout<<s[k];
			}
			cout<<t0;
			for(int p=k;p<=n;p++)cout<<s[p];
			cout<<'\n';
			return 0;
		}
	}
	return 0;
}

评论

3 条评论,欢迎与作者交流。

正在加载评论...