QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#859283#9926. Flipping PathsItgsurfRE 0ms0kbC++141.1kb2025-01-17 17:02:442025-01-17 17:02:45

Judging History

你现在查看的是最新测评结果

  • [2025-01-17 17:02:45]
  • 评测
  • 测评结果:RE
  • 用时:0ms
  • 内存:0kb
  • [2025-01-17 17:02:44]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;

typedef long long LL;
typedef pair<int,int> PII;

const int mod=998244353;
const int N=205,M=405;

int T,n,m;
char s[N][N];
int a[N][N];

char ans[M][M];
int cnt,len[M];

bool check(char c){
	for(int i=1;i<=n;++i)
		for(int j=1;j<=m;++j)
			a[i][j]=s[i][j]!=c;
	for(cnt=1;cnt<=401;++cnt){
		if(cnt>400) return false;
		bool flag=true;
		for(int i=1;i<=n;++i)
			for(int j=1;j<=m;++j)
				if(a[i][j]) flag=false;
		if(flag){
			--cnt;
			break;
		}
		len[cnt]=0;
		int y=1;
		for(int i=1;i<=n;++i){
			a[i][y]^=1;
			int k=0;
			for(int j=m;j;--j)
				if(a[i][j]){
					k=j;
					break;
				}
			while(y<k){
				a[i][++y]^=1;
				ans[cnt][++len[cnt]]='R';
			}
			if(i<n) ans[cnt][++len[cnt]]='D';
		}
		while(y<m){
			a[n][++y]^=1;
			ans[cnt][++len[cnt]]='R';
		}
	}
	puts("YES");
	printf("%d\n",cnt);
	for(int i=1;i<=cnt;++i)
		puts(ans[i]+1);
}

int main(){
	scanf("%d",&T);
	while(T--){
		scanf("%d%d",&n,&m);
		for(int i=1;i<=n;++i)
			scanf("%s",s[i]+1);
		if(!check('B')&&!check('W'))
			puts("NO");
	}
	return 0;
}

详细

Test #1:

score: 0
Runtime Error

input:

4
3 3
WBB
BWB
BBW
1 5
WWWWW
2 2
BB
BB
4 1
W
B
B
W

output:


result: