求助
查看原帖
求助
539211
lzyqwq楼主2022/3/6 15:56
#include<bits/stdc++.h>
using namespace std;
int n,m;
char ma[105][105];
map<char,char>mp;
void dfs(int x,int y)
{
	if(y>m)y=1,x++;
	if(ma[x][y]=='-')dfs(x,y+1);
	if(x>n)
	{
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=m;j++)printf("%c",ma[i][j]);
			puts("");
		}
		exit(0);
	}
	if(x==1&&y==1)
	{
		ma[x][y]='B',dfs(x,y+1),ma[x][y]='.';
		ma[x][y]='W',dfs(x,y+1),ma[x][y]='.';
	}
	else if(x==1)
		if(ma[x][y-1]=='-')
		{
			ma[x][y]='B',dfs(x,y+1),ma[x][y]='.';
			ma[x][y]='W',dfs(x,y+1),ma[x][y]='.';
		}
		else ma[x][y]=mp[ma[x][y-1]],dfs(x,y+1),ma[x][y]='.';
	else if(y==1)
		if(ma[x-1][y]=='-')
		{
			ma[x][y]='B',dfs(x,y+1),ma[x][y]='.';
			ma[x][y]='W',dfs(x,y+1),ma[x][y]='.';
		}
		else ma[x][y]=mp[ma[x-1][y]],dfs(x,y+1),ma[x][y]='.';
	else
		if(ma[x-1][y]=='-'&&ma[x][y-1]=='-')
		{
			ma[x][y]='B',dfs(x,y+1),ma[x][y]='.';
			ma[x][y]='W',dfs(x,y+1),ma[x][y]='.';
		}
		else if(ma[x-1][y]=='-')ma[x][y]=mp[ma[x][y-1]],dfs(x,y+1),ma[x][y]='.';
		else if(ma[x][y-1]=='-')ma[x][y]=mp[ma[x-1][y]],dfs(x,y+1),ma[x][y]='.';
		else if(ma[x][y-1]!=ma[x-1][y])return;
		else ma[x][y]=mp[ma[x-1][y]],dfs(x,y+1),ma[x][y]='.';
}
int main()
{
	scanf("%d%d",&n,&m);
	mp['B']='W',mp['W']='B';
	for(int i=1;i<=n;i++)scanf("%s",ma[i]+1);
	dfs(1,1);
}

WA 第5个点

2022/3/6 15:56
加载中...