QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#865198#9926. Flipping Pathspiggy123#WA 0ms3584kbC++174.2kb2025-01-21 15:59:222025-01-21 15:59:22

Judging History

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

  • [2025-01-21 15:59:22]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3584kb
  • [2025-01-21 15:59:22]
  • 提交

answer

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

ll a[205][205];
char c[205][205];

int main() {
	cin.tie(0);cout.tie(0);
	ios::sync_with_stdio(false);
	ll t;
	cin >> t;
	while (t--) {
		ll n,m;
		cin >> n >> m;
		for (ll i=1; i<=n; i++) {
			for (ll j=1; j<=m; j++) {
				cin >> c[i][j];
				a[i][j]=(c[i][j]=='W'?0:1);
			}
		}
		vector<string> ans;
		bool ok=0;
		for (ll C=0; C<=1; C++) {
			for (ll i=1; i<=n; i++) {
				for (ll j=1; j<=m; j++) {
					a[i][j]^=1;
				}
			}
			bool fl=1;
			vector<string> all;
			for (ll i=1; i<=n+m; i++) {
				vector<pair<ll,ll>> vct;
				for (ll j=1; j<=n; j++) {
					ll t=i-j;
					if (t<1||t>m)continue;
					vct.push_back({j,t});
				}
				ll xo=0;
				for (auto j:vct) {
					xo^=a[j.first][j.second];
				}
				if (xo!=0) {
					fl=0;
					break;
				}else{
					ll rev=0;
					for (ll j=0;j+1<vct.size();j++){
						if ((a[vct[j].first][vct[j].second]^rev)!=0){
							string s="";
							ll nwx=1,nwy=1;
							for (;nwx<vct[j].first;){
								s+="D";
								nwx++;
							}
							for (;nwy<vct[j].second;){
								s+="R";
								nwy++;
							}
							for (;nwx<n;){
								s+="D";
								nwx++;
							}
							for (;nwy<m;){
								s+="R";
								nwy++;
							}
							all.push_back(s);
							nwx=1,nwy=1;s="";
							for (;nwx<vct[j].first;){
								s+="D";
								nwx++;
							}
							for (;nwy+1<vct[j].second;){
								s+="R";
								nwy++;
							}
							s+="D";
							s+="R";
							nwx++,nwy++;
							for (;nwx<n;){
								s+="D";
								nwx++;
							}
							for (;nwy<m;){
								s+="R";
								nwy++;
							}
							all.push_back(s);
							rev=1;
						}else{
							rev=0;
						}
					}
				}
			}
			if (fl&&all.size()<=400){
				ans=all;ok=1;
			}
		}
		if (ok){
			cout<<"Yes\n";
			cout<< ans.size()<<"\n";
			for (auto i:ans)cout<<i<<"\n";
		}else{
			cout<<"No\n";
		}
	}
	return 0;
}

/*
                                                                
 ■■■■■     ■■      ■■■     ■■■   ■    ■     ■     ■■■■    ■■■■  
 ■   ■■    ■■     ■  ■■   ■  ■■  ■    ■    ■■     ■  ■■  ■■  ■  
 ■    ■    ■■    ■    ■  ■    ■   ■  ■    ■■■    ■■  ■■  ■   ■■ 
 ■    ■    ■■    ■    ■  ■    ■   ■  ■     ■■    ■   ■■      ■■ 
 ■    ■    ■■    ■       ■         ■■      ■■        ■■      ■  
 ■   ■■    ■■    ■  ■■■  ■  ■■■    ■■      ■■       ■■     ■■■  
 ■■■■■     ■■    ■    ■  ■    ■    ■■      ■■      ■■        ■■ 
 ■         ■■    ■    ■  ■    ■    ■■      ■■     ■■          ■ 
 ■         ■■    ■    ■  ■    ■    ■■      ■■     ■      ■   ■■ 
 ■         ■■    ■■  ■■  ■■  ■■    ■■      ■■    ■       ■■  ■■ 
 ■         ■■      ■■■■    ■■■■    ■■      ■■    ■■■■■■   ■■■■  
*/

詳細信息

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 3584kb

input:

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

output:

Yes
8
RDDR
DRDR
RRDD
RDRD
DRDR
DDRR
DRRD
DRDR
Yes
0
Yes
0
No

result:

wrong answer YES or NO expected in answer, but Yes found. (test case 1)