程序地带

2020上海ICPC B.Mine Sweeper II


思路:考虑一个二元关系(点,雷),要想到我们把整张图取反后,这个二元关系的个数是不变的 想到这点这题其实就已经过了。 我们计算一下图A和图B两张图不同的个数有多少个,如果少于一半,那么B可以变成A,所以输出A即可。 如果大于一半呢?我们知道取反后二元组个数是不变的。 所以我们对A进行取反,这样子,现在不同的个数就是没取反时候相同的个数,是小于一半的,并且满足要求,因此只需要输出A的补图即可。


#include<bits/stdc++.h>
using namespace std;
char s[1<<10][1<<10],t[1<<10][1<<10];
int main(){
int n,m;cin>>n>>m;
for(int i=0;i<n;i++) cin>>s[i];
for(int i=0;i<n;i++) cin>>t[i];
int ans=0;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
ans+=s[i][j]!=t[i][j];
}
}
if(ans<=n*m/2)
for(int i=0;i<n;i++) cout<<s[i]<<endl;
else
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(s[i][j]=='X') putchar('.');
else putchar('X');
}
cout<<endl;
}
return 0;
}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_43563669/article/details/112689388

随机推荐

定时器输入捕获

HAL_TIM_IC_Start_IT(&htim3,TIM_CHANNEL_1);//PA6打开定时器捕获中断//打开定时器溢出中断,防止捕获到的值过大产生溢出根据自己要捕获的值得大小...

红桃A68 阅读(885)

2020 操作系统复习 -第二、三章 处理机管理

2020操作系统-第二、三章处理机管理第二章进程的描述与控制进程是资源分配和独立运行的基本单位2.1前驱图和程序执行2.1.1前驱图前趋图:有向无循环图(DAG࿰...

Villin尼 阅读(650)

策略模式 2021.01.04

策略模式2021.01.04简单的来说策略模式就是根据不同的情况使用不同的办法。应用场景何时使用一个系统有很多类,区分它们的只是它们直接的行为。方法将这些算法封装成一个一个的类ÿ...

搬砖任 阅读(171)

NC51272 棋盘覆盖

题目:给出一张n×n(n≤100)的国际象棋棋盘,其中被删除了一些点,问可以使用多少1*2的多米诺骨牌进行掩盖。题解:先进行黑白染色࿰...

Jozky86 阅读(103)

转载博客

转载1...

故事与诗 阅读(595)

大数据入门:微服务与分布式

大数据入门:微服务与分布式

大数据基础架构的搭建,涉及到很重要的两个原理和概念,就是分布式和微服务,也正是分布式和微服务的诞生,使得大规模数据处理具有了更好的可实现方式。今...

加米谷大数据张老师 阅读(661)

阿里云服务器配置MySql

阿里云服务器配置MySql第一步打开终端:登录阿里云服务器sudo-isshroot@8.121.97.122检查MySQLrpm-qa|grepmysql删除rpm-e--no...

jhonjson 阅读(772)

RabbitMQ实现异步任务---发邮件

一.通过QQ邮箱发邮件本案例是基于django框架的结合rabbitmq实现异步发邮件,新建一个django项目并进行对应的配置,然后编写对应mvc代码,直接...

bugsayend 阅读(467)