复行数十步,月下周景树|

WuMin4

园龄:6个月粉丝:0关注:0

[ARC177B] Puzzle of Lamps

[ARC177B] Puzzle of Lamps

思路

首先可以发现这题并没有限制最少操作步骤,于是逆序遍历序列,若要将位置 i 的数字变成 1 (下标从 0 开始),则先执行 i+1 次操作 A,再执行 i 次操作 B,这样可以保证只将位置 i 的数字变成 1。由于是逆序遍历,所以不会影响后面的数字。

代码

#include <bits/stdc++.h>
using namespace std;
int cnt,n;
string s,res;
signed main() {
	cin>>n>>s;
	for(int i=s.length()-1;i>=0;i--)
		if(s[i]=='1'){
			cnt+=2*i+1;
			for(int j=1;j<=i+1;j++) res=res+"A";
			for(int j=1;j<=i;j++) res=res+"B";
		}
	cout<<cnt<<endl<<res;
	return 0; 
}

本文作者:WuMin4

本文链接:https://www.cnblogs.com/WuMin4/p/18371939

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

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