[题解]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;
}
浙公网安备 33010602011771号