【蓝桥杯-Even Parity】

蓝桥杯-Even Parity


洛谷 UVA11464 Even Parity

在这里插入图片描述
暴力思路:
去遍历每个元素,如果不符合要求则翻转
时间复杂度大概在O(2^(n×n) × n×n)

改进思路:
先去枚举确定第一行(第一行得合法),然后为保证第一行每个元素为偶数和去确定第二行;为保证第二行每个元素为偶数和去确定第三行。以此逐行检索。
最后对最后一行进行偶数和验证,如果满足要求,则方案合理。

#include<bits/stdc++.h>using namespace std;const int N = 20;
int grid[N][N], tmp[N][N], n;int check()
{for (int i = 2; i <= n; i++)//生成接下来的行数 for (int j = 1; j <= n; j++){int sum = 0;if (i > 2)sum += tmp[i - 2][j];//上 if (i > 1 && j > 1)sum += tmp[i - 1][j - 1];//左 if (i > 1 && j < n)sum += tmp[i - 1][j + 1];//右 tmp[i][j] = sum & 1;//sum为偶tmp为偶,sum为奇tmp为奇 if (tmp[i][j] == 0 && grid[i][j] == 1)return n * n + 1;//1改0 非法 }for (int j = 1; j <= n; j++)//检查第n行是不是合法 {int sum = 0;if (n > 1)sum += tmp[n - 1][j];//上 if (j > 1)sum += tmp[n][j - 1];//左 if (j < n)sum += tmp[n][j + 1];//右if (sum & 1) return n * n + 1;//sum所得为奇数,不满足要求,退出 }int cnt = 0;for (int i = 1; i <= n; i++)for (int j = 1; j <= n; j++)cnt += (grid[i][j] != tmp[i][j] ? 1 : 0);//统计修改次数 return cnt;
}signed main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin >> n;for (int i = 1; i <= n; i++)for (int j = 1; j <= n; j++)cin >> grid[i][j];//存给定的原来的矩阵 int ans = n * n + 1;for (int state = 0; state < (1 << n); state++)//对第一行枚举每种可能 {bool valid = true;for (int j = 1; j <= n; j++){if ((state >> (j - 1)) & 1)//state为1就是改变{if (grid[1][j] == 1)//原来就是1,1变0不合法{valid = false;break;}else tmp[1][j] = 1;//原来是0,变1合法}else{tmp[1][j] = grid[1][j];//state为0不改变直接赋值}}if (valid)ans = min(ans, check());//去检查接下来的行数,取修改数最小的 }cout << (ans == n * n + 1 ? -1 : ans) << endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/790659.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

反截屏控制技术对于防止数据外泄都有哪些具体作用?

反截屏控制技术在防止数据外泄方面具有以下具体作用&#xff1a; 智能反截屏技术&#xff1a; 当用户启动截屏操作时&#xff0c;并只有非涉密内容被截屏&#xff0c;所有涉密窗口自动隐藏&#xff0c;防止涉密内容被截屏。这一技术普遍支持目前市面上的各种截屏操作&#xff0…

Apache ECharts-数据统计(详解、入门案例)

简介&#xff1a;Apache ECharts 是一款基于 Javascript 的数据可视化图表库&#xff0c;提供直观&#xff0c;生动&#xff0c;可交互&#xff0c;可个性化定制的数据可视化图表。 1、介绍 图 1.1 Apache ECharts 功能、运行环境 功能&#xff1a; ECharts&#xff…

微信小程序使用icon图标

原因&#xff1a; 微信小程序使用fontawesome库使用icon图标&#xff0c;网上有很多教程&#xff0c;按照网上说法制作&#xff0c;引入到微信小程序中&#xff0c;但是验证成功&#xff0c;只能使用部分图标&#xff0c;结果不尽如人意。后面使用阿里巴巴开源iconfont来使用ic…

【opencv】教程代码 —Histograms_Matching(2)计算直方图、直方图比较、直方图均衡、模板匹配...

计算直方图直方图比较图像进行直方图均衡化处理模板匹配 1. calcHist_Demo.cpp 计算直方图 这段代码的功能是加载图像&#xff0c;分离图像的三个颜色通道&#xff0c;然后分别计算这三个通道的直方图&#xff0c;绘制出来并显示结果。直方图是图像中像素值分布的图形表示&…

【Django学习笔记(四)】JavaScript 语言介绍

JavaScript 语言介绍 前言正文1、JavaScript 小案例2、代码位置2.1 在当前 HTML 文件中2.2 在其他 js 文件中 3、代码注释3.1 HTML的注释3.2 CSS的注释3.3 Javascript的注释 4、变量 & 输出4.1 字符串4.2 数组4.3 对象(python里的字典) 5、条件语句6、函数7、DOM7.1 根据 I…

目标检测——图像中提取文字

一、重要性及意义 图像提取文本&#xff0c;即光学字符识别&#xff08;OCR&#xff09;技术&#xff0c;在现代社会中的重要性和意义日益凸显。以下是关于图像提取文本的重要性和意义的几个关键方面&#xff1a; 信息获取的效率提升 快速处理大量文档&#xff1a;OCR技术可…

报错 | 2023新版IDEA/PyCharm连接远程服务器的Docker需使用密钥认证

文章目录 01 问题情景02 需求场景及工作原理03 解决步骤3.1 在本地生成密钥对3.2 将公钥保存至服务器3.3 本地连接时选择私钥文件 网上有很多文章讲怎么解决&#xff0c;但都要么写得很复杂&#xff0c;要么没有写明白原理或操作详情&#xff0c;造成我一头雾水。 01 问题情景…

指针变量的类型

1.为什么指针变量要要求类型 当指针变量的类型跟存放的地址变量的类型不匹配时&#xff0c;当值变化时&#xff0c;地址增量也不同 #include <stdio.h> int main() {int a 0x1234;int *p&a;char *c&a;printf("p %p\n",p);printf("c %p\n"…

Jenkins--任务详解

一、任务类型 Jenkins的主要功能的实现是由执行任务去完成的&#xff0c;常用的任务类型主要有以下三种&#xff1a; 自由风格任务(Free Style Project): 这是Jenkins中最常用的任务类型&#xff0c;允许你自定义各种构建步骤和配置选项&#xff0c;如源码管理、构建触发器、…

redis的常用基本命令与持久化

文章目录 redis的基本命令1.授权密码2.增加、覆盖、查询、删除、切换库名、移动、清空数据库 Redis持久化RDB模式主动备份自动备份RDB备份过程 AOF备份模式开启AOF备份模式执行流程 总结 redis的基本命令 1.授权密码 config set requirepass 密码设置完密码需要认证密码以后才…

云计算存在的安全隐患

目录 一、概述 二、ENISA云安全漏洞分析 三、云计算相关系统漏洞 3.1 概述 3.2 漏洞分析 3.2.1 Hypervisor漏洞 3.2.1.1 CVE-2018-16882 3.2.1.2 CVE-2017-17563 3.2.1.3 CVE-2010-1225 3.2.2 虚拟机漏洞 3.2.2.1 CVE-2019-14835 3.2.2.2 CVE-2019-5514 3.2.2.3 CV…

备战蓝桥杯,用JAVA刷洛谷算法题单:【算法2-2】常见优化技巧

参考 【算法2-2】常见优化技巧 - 题单 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) P1102 A-B 数对P1638 逛画展P1115 最大子段和P7072 [CSP-J2020] 直播获奖P2671 [NOIP2015 普及组] 求和P4147 玉蟾宫P2866 [USACO06NOV] Bad Hair Day SP1950 长方形P2032 扫描P2216 [HAOI…

ES9学习 -- 对象的剩余参数与扩展运算符 / 正则扩展 / Promise.finally / 异步迭代

文章目录 1. 对象的剩余参数与扩展运算符1.1 对象的剩余参数1.2 扩展运算符 2. 正则扩展3. Promise.finally4. 异步迭代4.1 同步遍历器的问题4.2 异步遍历器使用 1. 对象的剩余参数与扩展运算符 1.1 对象的剩余参数 let obj { name:"kerwin", age:100, location:&…

推理端框架简介 高通SNPE 神经网络处理引擎 阿里巴巴 MNN 腾讯 FeatherCNN 端侧推理引擎 卷积计算优化 卷积计算优化

高性能计算(High performance computing, 缩写HPC) 指通常使用很多处理器(作为单个机器的一部分) 或者某一集群中组织的几台计算机(作为单个计 算资源操作)的计算系统和环境。 有许多类型的HPC 系统,其范围从标准计算机的大型集群,到高度专用的硬件。 大多数基于集群的H…

MVCC详细总结

简介 MVCC&#xff08;Multi-Version Concurrency Control&#xff09;是一种多版本并发控制机制&#xff0c;主要用于数据库管理系统中&#xff0c;实现对数据库的并发访问。在编程语言中&#xff0c;MVCC可以实现事务内存。 MVCC的特点是读不加锁&#xff0c;读写不冲突。MVC…

(表征学习论文阅读)FINITE SCALAR QUANTIZATION: VQ-VAE MADE SIMPLE

1. 前言 向量量化&#xff08;Vector Quantization&#xff09;或称为矢量量化最早在1984年由Gray提出&#xff0c;主要应用于数据压缩、检索领域&#xff0c;具体的阐述可以参考我写的另一篇关于VQ算法的文章。随着基于神经网络的离散表征学习模型的兴起&#xff0c;VQ技术也…

二维动画制作软件 Animate 2024 for mac激活版

Animate 2024 for Mac是一款功能强大的二维动画制作软件&#xff0c;专为Mac用户打造。它提供了丰富的动画编辑功能&#xff0c;使用户能够轻松创建出生动逼真的动画作品。无论是短片、广告还是游戏等应用领域&#xff0c;Animate 2024都能发挥出出色的表现。 软件下载&#xf…

部署k8s客户端,及docker私仓部署

1.部署一个docker私仓 mkdir /opt/docker/registry #配置仓库密码 mkdir /opt/docker/auth cd /opt/docker/auth htpasswd -Bbn admin admin > htpasswd#运行docker私仓服务&#xff0c;下面端口5000:5000 前面的5000对应本机端口可以自定义 docker run -itd \ -v /opt/d…

【Layui】------ layui实现table表格拖拽行、列位置的示例代码

一、完整的示例代码&#xff1a;&#xff08;请使用layui v2.8.3的版本&#xff09;看懂就能用、不要照搬、照搬会出错误、拷贝重要代码改改符合你自己的需求。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><…

MapReduce [OSDI‘04] 论文阅读笔记

原论文&#xff1a;MapReduce: Simplified Data Processing on Large Clusters (OSDI’04) 1. Map and Reduce Map&#xff1a;处理键值对&#xff0c;生成一组中间键值对Reduce&#xff1a;合并与同一中间键相关的所有中间值process overview&#xff1a;分割输入数据&#x…