A. Marin and Photoshoot

A. Marin and Photoshoot

题目大意:

给一个01串,其中每一个长度大于等于2的子区间中0的数量不大于1的数量,最少插入多少1

思路和代码:

找最小单元,00和010:

00 => 0110

010=>0110

也就是说遇到00要加2,遇到010要加1

void solve(){
	ll n , ans = 0 ;
	string s ;
	cin >> n >> s ;
	
	for(int i = 0 ; i < s.size() ; i ++ ){
		if(s[i] == '1') continue ;
		if(i + 1 < s.size() && s[i + 1] == '0') ans += 2 ;
		if(i + 2 < s.size() && s[i + 1] == '1' && s[i + 2] == '0') ans ++ ;
	}
	cout << ans << "<=\n" ;
	
}//code_by_tyrii 
小结:

简单的字符串问题,从最小的单元为起点去思考

posted @   tyrii  阅读(58)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示