35pts求条
查看原帖
35pts求条
982518
sjwhsss楼主2024/7/27 16:18

#5WA,其他re,感觉思路没错

#include <bits/stdc++.h>
using namespace std;
const int maxn = 5e4+5;
int n , a[maxn] , b[maxn];
int main ()
{
	cin >> n;
	for (int i = 1; i <= n; i++)
	{
		char c;
		cin >> c;
		a[i]=(c=='B');
	}
	memcpy(b , a , sizeof(a));
	int ansk , ansm = 0x3f3f3f3f;
	for (int k = 1; k <= n; k++)
	{
		memcpy(a , b , sizeof(a));
		int sum = 0 , l = 1 , r = k;
		while(r <= n)
		{
			while(!a[l])l++ , r++;
			if (a[l])
			{
				int pos = 0;
				for (l; l <= r; l++)
				{
					a[l]=!a[l];
					if (!pos && a[l] == 1)pos=l;
				}
				if(pos)l=pos;
				sum++;
			}
			r = l + k - 1;
		}
		bool flag = 1;
		for (int i = 1; i <= n; i++) 
		{
			if (a[i])
			{
				flag=0;
				break;
			}
		}
		if (flag && sum < ansm)ansk = k , ansm = sum;
	}
	cout << ansk << " " << ansm;
	return 0;
}
2024/7/27 16:18
加载中...