求助
查看原帖
求助
701387
xiaoliebao1115楼主2024/6/16 18:17
#include<bits/stdc++.h>
using namespace std;
int n,m;
char s[200005];
signed main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++) cin>>s[i];
	s[0]='1',s[n+1]='1';
	for(int i=1;i<=m;i++)
	{
		char c;
		int wz;
		cin>>c>>wz;
		s[wz]=c;
	}
//	for(int i=1;i<=n;i++) cout<<s[i];
	int ans=0;
	for(int i=1;i<=n;i++)
	{
		int cnt=0;
		int j=i;
		if((s[i]=='B'||s[i]=='W')&&s[i-1]!=s[i]){
			ans+=1;
		}
		if(s[i]=='R'||s[i]=='M')
		{
			while(j<=n&&s[j]=='R'||s[j]=='M')
			{
				if(s[j]=='R') cnt++;
				j++;
			}
			j--;
		}
		else 
		{
		//	cout<<ans<<endl;
			continue;
		}
		if((s[i-1]=='B'||s[i-1]=='W')&&(s[j+1]=='B'||s[j+1]=='W'))
		{
			char f=s[i-1];
			if(cnt%2==1)
			{
				if(f=='B') f='W';
				else f='B';
			}
			ans+=cnt;
			if(f==s[j+1]) ans--;
		}
		else ans+=cnt;
		if(cnt==0&&(s[i-1]=='_'||i-1==0)&&(s[j+1]=='_'||j==n)) ans++;
		i=j;
	//	cout<<cnt<<ans<<endl;
	}
	cout<<ans<<endl;
	return 0;
}

人不好了。

terrible

2024/6/16 18:17
加载中...