[题解]P9820 [ICPC 2020 Shanghai R] Mine Sweeper II

P9820 [ICPC 2020 Shanghai R] Mine Sweeper II

一个关键性质是:将 \(A\) 反转为 \(A'\) 后,非地雷单元格的数字和不变。

\(B\) 变化到 \(A\),和 \(B\) 变化到 \(A'\),两者操作次数总和是 \(n\times m\)

那么必有一种的操作次数 \(\le \lfloor\frac{n}{2}\rfloor\)

选取操作次数较小的那个进行输出即可。

(所以根本不存在输出 -1 的情况)

点击查看代码
#include<bits/stdc++.h>
using namespace std;
const int N=1e3+2;
int n,m,c[2];
string a[N],b[N];
signed main(){
	cin>>n>>m;
	for(int i=0;i<n;i++) cin>>a[i];
	for(int i=0;i<n;i++) cin>>b[i];
	for(int i=0;i<n;i++){
		for(int j=0;j<m;j++){
			c[a[i][j]==b[i][j]]++;
		}
	}
	if(c[0]>c[1]){
		for(int i=0;i<n;i++){
			for(int j=0;j<m;j++){
				cout<<(a[i][j]=='X'?'.':'X');
			}
			cout<<"\n";
		}
	}else{
		for(int i=0;i<n;i++){
			for(int j=0;j<m;j++){
				cout<<a[i][j];
			}
			cout<<"\n";
		}
	}
	return 0;
}
posted @ 2025-08-26 16:59  Sinktank  阅读(19)  评论(0)    收藏  举报
★CLICK FOR MORE INFO★ TOP-BOTTOM-THEME
Enable/Disable Transition
Copyright © 2023 ~ 2025 Sinktank - 1328312655@qq.com
Illustration from 稲葉曇『リレイアウター/Relayouter/中继输出者』,by ぬくぬくにぎりめし.