专栏文章

CF2162B Beautiful String

CF2162B题解参与者 1已保存评论 0

文章操作

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

当前评论
0 条
当前快照
1 份
快照标识符
@min3evxa
此快照首次捕获于
2025/12/01 19:55
3 个月前
此快照最后确认于
2025/12/01 19:55
3 个月前
查看原文

思路

不下降序列:指一个序列的任意一项不小于其上一项,即 a[i]a[i1]a[i] \ge a[i-1]。例如 000110001100000000001111111111 是不下降序列,而 1001110011110110 不是不下降序列。
回文串:指一个序列正着读和倒着读是一样的。例如 101011010110110111111111 是回文串,而 1001110011110110 不是回文串。
不难发现,将所有的 00 删除即可保证删除部分不下降且剩余部分为回文串(删除所有的 11 也可以)。

代码

CPP
#include <bits/stdc++.h>
using namespace std;
void solve()
{
	int n;
	string s;
	cin >>n>>s;
	int cnt=0;
	for(int i=0;i<n;i++)
	{
		if(s[i]=='0') cnt++;
	}
	cout <<cnt<<'\n';
	for(int i=0;i<n;i++)
	{
		if(s[i]=='0') cout <<i+1<<" ";
	}
	cout <<'\n';
}
int main()
{
	int t;
	cin >>t;
	while(t--)
	{
		solve();
	}
	return 0;
}

评论

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

正在加载评论...