思维

[B-Mine Sweeper II_第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(上海)(重现赛)@hzy0227 (nowcoder.com)](https://codeforces.com/gym/103202/problem/I)

题意

在 \(n*m\;(1<=n,m<=1000)\) 的网格中扫雷,雷上没有数字,别的格子上的数字表示以它为中心的九宫格中的雷的个数

给出两个雷图A,B,"X"代表雷,"." 代表没有雷,每次操作可以将 B 中任意一个格子反转(雷变非雷,非雷变雷),求是否可以在 \(\lfloor\frac {n*m}2\rfloor\) 次操作内使 B 的各个格子的数字和 == A 的各个格子的数字和,并给出 B 最终的雷图

思路

思考数字的含义是什么,不完全是一个格子周围的雷的数量,因为如果当前格子是雷的话,他周围的雷对它就没有贡献了

数字的真正含义是相邻的(雷,非雷)对数,因此反转整个图后这个数是不变的

所以可以尝试把 B 直接变成 A,如果次数超了就把 B 变成 A 的反图

代码

#include<bits/stdc++.h>
typedef long long ll;
typedef std::pair<int, int> PII;
#define ALL(x) x.begin(),x.end()
#define pb push_back
#define fi first
#define se second
#define endl '\n'
using namespace std; const int N = 1e3 + 10;
char a[N][N], b[N][N];
int n, m;
int main() {
ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
cin >> n >> m;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
cin >> a[i][j];
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
cin >> b[i][j];
int cnt = 0;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
if (a[i][j] != b[i][j])
cnt++;
if (cnt > n * m / 2)
{
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
if (a[i][j] == 'X')
a[i][j] = '.';
else
a[i][j] = 'X';
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
cout << a[i][j];
cout << endl;
}
return 0;
}

最新文章

  1. Spring中的JDBCTemplate
  2. 在 Arch Linux 玩百度 Flash 战曲游戏乱码
  3. Oracle sqlplus设置显示格式命令详解
  4. hdu 4036 2011成都赛区网络赛F 模拟 **
  5. sql 查询 &ndash; left join on
  6. OO之美3
  7. UBoot讲解和实践-----------讲解(一)
  8. 【待补】java开发Web Service
  9. Codeforces Gym 100650C The Game of Efil DFS
  10. openstack 手动安装版 功能测试
  11. Android-4
  12. JSP内置对象--4种属性范围 (pageContext,request,session,application)
  13. 如何获取app的素材,做出一个高仿的app
  14. 编写一个python脚本功能-备份
  15. SpringBoot开发案例之打造私有云网盘
  16. mongoDB 文档操作_增
  17. R语言语法基础一
  18. [微信小程序] 通过快速启动demo分析小程序入门关键点
  19. JavaScrip(一)JavaScrip的写法
  20. 支持向量机通俗导论(理解SVM的三层境界)(ZT)

热门文章

  1. 自动删除几天前的备份集文件脚本 for windows
  2. windows下gitlab-ci.yml配置进入某一目录找不到,无权限
  3. IDEA的常用快捷键和文档注释
  4. VIM、VI编辑中一个Tab设置为4个空格
  5. js数字千分位,三种写法,,拿走。。。
  6. mysql中的InnoDB和MyISAM
  7. weboack5webpack5用url-loader(file-loader)处理字体
  8. PHP 静态延迟绑定 static
  9. TCP通信实现两个主机之间的信息交互
  10. (Fiddler)Fiddler 的相关操作