「须知少时凌云志,曾许人间第一流」|

BadBadBad__AK

园龄:1年6个月粉丝:13关注:6

CF1837C Best Binary String( 普及− ) 题解

题目传送门

题目描述

给定由 1 0 ? 所组成的字符串,你需要用 01 替换 ?

我们将 sl,sl+1,,sr 反转称为一次操作。

你要使通过“反转”操作使原字符串成为升序的操作次数尽可能的小。

分析

通过观察,我们可以发现一个规律:

  • si?,且 i=0 时,si=0 即可;

  • si?,且 i1 时,si=si1 即可。

有了这条规律,代码也就能很轻松地解决了。

Code:

#include <bits/stdc++.h>
using namespace std;
int mein()
{
	int n;
	cin>>n;
	while(n--)
	{
		string s;
		cin>>s;
		for(int i=0;i<s.size();i++)
		{
			if(s[i]=='?')
			{

				if(i==0)
				{
					s[0]='0';
				}
				else
				{
					s[i]=s[i-1];
				}
			}
		}
		cout<<s<<endl;
	}
	return 0;
}

本文作者:BadBadBad__的博客

本文链接:https://www.cnblogs.com/BadBadBad/p/CF1837C.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   BadBadBad__AK  阅读(15)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起