题目链接:B-Mine Sweeper II_第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(上海) (nowcoder.com)a

题目大意:给你两个大小为 n * m 的扫雷图 A, B,扫雷中格子上可能有雷也可能有数字,数字代表这个格子周围有多少个雷,现在我们可以将扫雷图B上的一些格子进行操作(可以把雷去掉,也可以在一些没有雷的位置上加上雷),要求改的次数不能超过n*m / 2,改完后B图中没有雷的格子上的数字和与A图中没有雷的数字和相同,输出操作后B图的排列。

分析:先说一个性质:如果我们把原图中有雷的位置改成无雷,把无雷的位置改成有雷,这样操作之后格子上数字的和是不变的。

那我们就可以想到,要么把B图直接改成A图,要么就把B图改成A图的取反图,我们可以记录一下把B图改成A图所要花费的最小次数,如果花费的最小次数超过n*m / 2,我们就可以直接把B图改成A图的取反图,所需操作次数一定是小于等于n*m / 2的,因为假如B图与A图有x个位置不相同,由于每个格子只有两种状态,一种是有雷,一种是无雷,所以B图与A图的取反图就有n*m-x个位置不相同,因为x>n*m / 2,则n*m-x<n*m/2,而若花费的最小次数小于等于n*m / 2,我们就可以直接将B图改为A图。

下面是代码:

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<queue>
using namespace std;
const int N=1e3+10;
char a[N][N],b[N][N];
int main()
{int n,m;cin>>n>>m;for(int i=1;i<=n;i++)scanf("%s",a[i]+1);for(int i=1;i<=n;i++)scanf("%s",b[i]+1);int cnt=0;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)if(a[i][j]!=b[i][j]) cnt++;if(cnt<=n*m/2){for(int i=1;i<=n;i++)puts(a[i]+1);}else{for(int i=1;i<=n;i++){for(int j=1;j<=m;j++)if(a[i][j]=='X') printf(".");else printf("X");printf("\n");}}return 0;
} 

2020icpc上海 Mine Sweeper II (思维)相关推荐

  1. (ICPC)亚洲区域赛(上海)Mine Sweeper II(思维)

    LINK 设一个空格子周围有xxx颗雷,那么这个格子的数字是xxx 此时如果把周围的xxx颗雷变成空格子,原来的空格子变成雷 那么中间的雷(原来的空格子)会给周围的xxx个空格子(原来的雷),每个贡献 ...

  2. 构造 - Mine Sweeper II - ICPC 2020 上海

    构造 - Mine Sweeper II - ICPC 2020 上海 题意: 给 定 两 个 n × m 的 由 ′ X ′ 和 ′ . ′ 矩 阵 A 和 B , 表 示 两 个 扫 雷 的 矩 ...

  3. 上海ICPC Mine Sweeper II

    上海ICPC Mine Sweeper II 题意:给定扫雷图 A A A和 B B B,它们的大小为 n × m n\times m n×m,设 A A A中所有空白格的贡献为 s u m sum ...

  4. Mine Sweeper II

    Mine Sweeper II 题意: 给你两个大小为 n * m 的扫雷图 A, B,要求通过最多 n * m/2 次转换(转换指 把一个不是雷的格子变成雷, 或者把一个是雷的格子变成空白格),使得 ...

  5. 2020 icpc上海站 Mine Sweeper II

    Mine Sweeper II 题意 给你两个用"."和X组成的矩阵,X表示地雷,每个"."周围八个格子有几个雷贡献就是多少,改变第二个字符矩阵,使最后两个矩阵 ...

  6. gym 102900 Mine Sweeper II

    gym 102900 Mine Sweeper II 题目链接 题意 给定两个 n × m n\times m n×m的扫雷地图 A , B A,B A,B,所有非地雷格子都有一个数字,表示这个格子周 ...

  7. 2020ICPC上海 B Mine Sweeper II(思维)

    链接 题目描述 A mine-sweeper map X {X} X can be expressed as an n × m n\times m n×m grid. Each cell of the ...

  8. 2020ICPC上海 B.Mine Sweeper II(思维,乱搞)

    题意: 扫雷,给你A,B图.权值为所有非雷点的和,要求你修改B图中不超过(n*m/2)个点,使得A,B图权值相等. 思路: 感觉过的太多了,肯定不难.模拟发现,每个点变化值1,2,3,4-都有,所以大 ...

  9. 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(上海)B Mine Sweeper II

    题目 A mine-sweeper map {X}X can be expressed as an n\times mn×m grid. Each cell of the grid is either ...

最新文章

  1. java正立三角形_JAVA 打印三角形
  2. 为什么租号玩显示服务器忙,租号玩上号器怎么用,租号玩上号器使用教程
  3. JavaScript的标签
  4. mysql putty 备份_Linux下mysql数据库的备份-putty
  5. 2-计算机发展及应用
  6. rz和sz上传下载文件
  7. Python登录界面
  8. UWP 手绘视频创作工具技术分享系列 - 位图的绘制
  9. 【摘转留用】35前要考虑的
  10. Bootstrap3 过渡插件
  11. EOS技术研究:合约与数据库交互
  12. Lomboz插件的介绍 下载 安装 问题
  13. EXCEL制作柱形图逆序的意义
  14. matlab中sumf,使用SUMIF函数根据日期区间统计的方法
  15. 如何用手机访问电脑本地localhost网页, 以调试项目
  16. android华为隐藏底部虚拟按键,沉浸式状态栏/华为虚拟按键隐藏
  17. 骨传导耳机对耳朵好不好、不伤耳的骨传导耳机推荐
  18. ai描边工具怎么打开_AI的工具栏怎么用快捷键打开?
  19. 轻触开源(二)-Gson项目源码解析_壹
  20. 做销售,如何开发陌生市场?

热门文章

  1. [数据集][目标检测]塔吊数据集VOC格式2559张
  2. 深度学习开发任务实例(无人小车)
  3. Oracle安装过程物理内存检查及临时temp空间不足解决办法
  4. 直接从数据库里修改桌面图标
  5. 控制A4VSO和A4VSG系列带倾角传感器的电比例变量柱塞泵控制放大器
  6. 在mathtype中添加任意维数矩阵的方法以及矩阵中省略号的问题
  7. css使用三个属性设置文本结尾省略号显示
  8. python四瓣花图形_大家用Python-turtle库作图画出过哪些漂亮的树哇 ?
  9. 3dmax fbx导入unreal engine注意事项 法线处理导入ue
  10. 趣图 | 袜子破了容易出 Bug? 我也是没想到啊