关于字符串
  • 板块灌水区
  • 楼主洛璟
  • 当前回复8
  • 已保存回复8
  • 发布时间2020/11/4 11:57
  • 上次更新2023/11/5 09:03:25
查看原帖
关于字符串
198719
洛璟楼主2020/11/4 11:57

这个程序的字符串爆炸了……在更新一次之后就不会再更新了/kk

如果看不懂的话拜托dalao复制一下,输入样例,应该会更明白些QWQ

样例:

7 3

WBWBWBW

正确输出:

WWWWWWW

#include<bits/stdc++.h>
using namespace std;
int n,k,z;
string s[2];
inline int read()
{
	int x=0,f=1;
	char c=getchar();
	while(c<'0' || c>'9')
	{
		if(c=='-') f=-1;
		c=getchar();
	}
	while(c>='0' && c<='9')
	{
		x=(x<<1)+(x<<3)+(c^'0');
		c=getchar();
	}
	return x*f;
}
signed main()
{
//	freopen("P.in","r",stdin);
//	freopen("P.out","w",stdout);
	n=read();
	k=read();
	cin>>s[0];
	s[1]=s[0];
	int sh=1;
	for(int i=1; i<=k; i++)
	{
		sh=sh^1;
		for(int j=0; j<n; j++)
		{
			if(j==0)
			{
				if(s[sh][0]=='B' && s[sh][n-1]=='W' && s[sh][1]=='W')
				{
					s[sh^1][0]='W';
				}
				else if(s[sh][0]=='W' && s[sh][n-1]=='B' && s[sh][1]=='B')
				{
					s[sh^1][0]='B';
				}
			}
			else if(j==n-1)
			{
				if(s[sh][n-1]=='B' && s[sh][0]=='W' && s[sh][n-2]=='W')
				{
					s[sh^1][n-1]='W';
				}
				else if(s[sh][n-1]=='W' && s[sh][0]=='B' && s[sh][n-2]=='B')
				{
					s[sh^1][n-1]='B';
				}
			}
			else if(s[sh][j]=='B' && s[sh][j-1]=='W' && s[sh][j+1]=='W')
			{
				s[sh^1][j]='W';
			}
			else if(s[sh][j]=='W' && s[sh][j-1]=='B' && s[sh][j+1]=='B')
			{
				s[sh^1][j]='B';
			}
		}
		cout<<i<<"   "<<(sh^1)<<"   "<<s[sh^1]<<"\n";
		if(s[sh]==s[sh^1]) break;
	}
	cout<<s[sh];
	return 0;
}

感谢各位大佬,拜托了(鞠躬

2020/11/4 11:57
加载中...