(ICPC)亚洲区域赛(上海)Mine Sweeper II(思维)
Posted issue是fw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(ICPC)亚洲区域赛(上海)Mine Sweeper II(思维)相关的知识,希望对你有一定的参考价值。
设一个空格子周围有 x x x颗雷,那么这个格子的数字是 x x x
此时如果把周围的 x x x颗雷变成空格子,原来的空格子变成雷
那么中间的雷(原来的空格子)会给周围的 x x x个空格子(原来的雷),每个贡献 1 1 1
从这个角度来看,原图和补图的数字是相等的
这启示我们把 B B B变成 A A A或者 A A A的补图即可
转化次数一定有一个小于一半,所以一定有解
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e3+10;
char a[1009][1009],b[1009][1009];
int n,m,t;
int main()
{
cin >> n >> m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin >> a[i][j];
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin >> b[i][j];
int ans = 0;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
if( a[i][j]!=b[i][j] ) ans++;
}
if( ans<=n*m/2 )
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
cout << a[i][j];
cout << endl;
}
}
else
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if( a[i][j]=='.' ) cout << 'X';
else cout << ".";
}
cout << endl;
}
}
}
以上是关于(ICPC)亚洲区域赛(上海)Mine Sweeper II(思维)的主要内容,如果未能解决你的问题,请参考以下文章
(ICPC)亚洲区域赛上海 M.Gitignore(模拟,map)
Digit sum (第 44 届 ACM/ICPC 亚洲区域赛(上海)网络赛)进制预处理水题
第 46 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(上海),签到题6题
第 46 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(上海),签到题6题