其他分享
首页 > 其他分享> > Codeforces Round #581 (Div. 2) D2. Kirk and a Binary String (hard version)(思维)

Codeforces Round #581 (Div. 2) D2. Kirk and a Binary String (hard version)(思维)

作者:互联网

题目链接
在这里插入图片描述
在这里插入图片描述
思路:看了一下大佬的方法,真的是惊叹不已呀,O(n)就可以出结果了。。。
想想看把哪些位置的1变为0不会影响LIS呢,其实当某一位为1的时候只要它后面的1的个数大于0的个数的话就不会影响了,所以我们从后往前枚举。

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+1;
char s[maxn];
int main()
{
	scanf("%s",s);
	int len=strlen(s),cnt=0;
	for(int i=len-1;i>=0;--i)
	{
		if(s[i]=='0') cnt++;
		else if(s[i]=='1'&&cnt>0) cnt--;
		else if(s[i]=='1'&&cnt==0) s[i]='0';
	}
	printf("%s\n",s);
}
qq_42479630 发布了138 篇原创文章 · 获赞 0 · 访问量 4677 私信 关注

标签:Binary,cnt,String,581,int,len,else,maxn,&&
来源: https://blog.csdn.net/qq_42479630/article/details/104545581