p15页

给你一个n*n的01矩阵,只能够将0变成1,使得每个元素上下左右之和均是偶数,

比如   0 0 0        0 1 0

     1 0 0>>>>1 0 1

     0 0 0        0 1 0    一个转变了3步

 

多实例T  然后一个n(n<=15)  表示n*n的矩阵  然后n*n个01整数    如果不能转换 输出-1

因为n*n的矩阵 而且n<16所以状态压缩   遍历最上面的一层

#include<cstdio>
#include<math.h>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<queue>
#include<vector>
#include<map>
using namespace std;
#define INF 0x3f3f3f3f
#define N 20
int a[N][N],q[N][N],n;
int Q(int s)
{memset(q,0,sizeof(q));for(int i=0;i<n;i++){if(s&(1<<i)) q[0][i]=1;///直接换为1 else if(a[0][i]==1) return INF;///如果已经是1   避免重复使用
    }for(int i=1;i<n;i++){for(int j=0;j<n;j++){///要从第0层  开始往下推int sum=0;///q[i-1][j]上左右的元素和if(i>1) sum+=q[i-2][j];if(j>0) sum+=q[i-1][j-1];if(j<n-1) sum+=q[i-1][j+1];q[i][j]=sum%2;if(a[i][j]==1&&q[i][j]==0) return INF;}///0 0 和1 1 和0,1都满足状态
    }int ans=0;for(int i=0;i<n;i++)///统计转变的次数
    {for(int j=0;j<n;j++)if(a[i][j]!=q[i][j]) ans++;}return ans;
}
int main()
{int T;scanf("%d",&T);while(T--)///这道题的整体思想  是改变最上面一层的数 然后根据规律向下递推
    {scanf("%d",&n);for(int i=0;i<n;i++){for(int j=0;j<n;j++)scanf("%d",&a[i][j]);}int ans=INF;for(int i=0;i<(1<<n);i++)///利用状态压缩 将最上面的每种情况 都考虑到ans=min(ans,Q(i));if(ans==INF) ans=-1;///如果不能转换则输出-1printf("%d\n",ans);}return 0;
}

转载于:https://www.cnblogs.com/a719525932/p/7158857.html

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

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

相关文章

html 登陆sql server,jsp实现注册与登录页面+sqlsever2008

//index.jspString path request.getContextPath();String basePath request.getScheme()"://"request.getServerName()":"request.getServerPort()path"/";%>登陆用户登陆用户名&#xff1a;密 码:注册新用户//Logon.jspString path req…

百度前端学院-基础学院-第四课

今天是第四天&#xff0c;进度可以&#xff0c;表扬一下自己。 今天的课程目标是&#xff1a;掌握 CSS 稍微复杂的一些选择器&#xff0c;还有背景&#xff0c;边框等一些 CSS 样式属性。 CSS背景&#xff1a; 背景色&#xff1a;background-color:gray; 背景图&#xff1a…

JUnit测试方法订购

直到4.10版为止的Junit都使用反射API返回的测试类中测试方法的顺序作为测试方法执行的顺序– Class.getMethods&#xff08;&#xff09; 。 引用getMethods&#xff08;&#xff09;api的Javadoc&#xff1a; 返回的数组中的元素未排序&#xff0c;并且没有任何特定顺序。 …

html中padding和margin的区别和用法与存在的bug消除

关于margin&#xff1a;在需要border外侧添加距离时。空白处不需要背景时。相连的两个部分的地方需要加外边的边距时使用。 关于padding&#xff1a;在需要border内侧添加距离时。空白处需要背景时。相连的两个部分的地方需要加内部的边距时使用。 IE6中双边距Bug&#xff1a; …

python发微信提醒天气冷了注意保暖_2019天气变冷的朋友圈说说 注意保暖的微信问候语...

1.天冷了&#xff0c;注意添加衣物&#xff0c;别着凉。可你还是着凉了。看你难受的样子&#xff0c;我的心&#xff0c;唉&#xff0c;只有一句话能表达&#xff1a;小样&#xff0c;你也有今天&#xff01;为了不让我得逞&#xff0c;你要注意身体哦。2.天气变凉要注意&#…

Fiddler抓包使用教程-QuickExec

转载请标明出处&#xff1a;http://blog.csdn.net/zhaoyanjun6/article/details/73468287 本文出自【赵彦军的博客】 在 Fiddler 中自带了一个 QuickExec 命令行&#xff0c;用户可以直接输入并快速执行脚本命令。 常见命令 help 打开官方的使用页面介绍&#xff0c;所有的命令…

自己整理的css3动画库,附下载链接

动画调用语法 animation: bounceIn 0.3s ease 0.2s 1 both; 按顺序解释参数&#xff1a; 动画名称 如&#xff1a;bounceIn 一周期所用时间 如&#xff1a;0.3s 速度曲线 如&#xff1a;ease 值 描述 linear 动画从头到尾的速度是相同的。 ease 默认。动画以低速开始&#xff0…

带有Spring的REST的ETag

1.概述 本文将重点介绍ETags-Spring支持&#xff0c;RESTful API的集成测试以及带有curl的使用场景。 这是关于使用Spring 3.1和Spring Security 3.1和基于Java的配置来建立安全的RESTful Web服务的系列文章的第9篇。 REST with Spring系列&#xff1a; 第1部分 – 使用Spring…

html5与css3都要学吗,前端要学css3吗?

前端要学css3&#xff1b;HTML5、CSS3是前端工程师必须要学会。现在移动端的兴起&#xff0c;导致web前端开发的技术逐变向css3和html5转变&#xff0c;所以css3一定要学。CSS3是CSS(层叠样式表)技术的升级版本&#xff0c;于1999年开始制订&#xff0c;2001年5月23日W3C完成了…

PHP中cookie和session的区别

1、cookie数据存放在客户的浏览器上&#xff0c;session数据放在服务器上。 2、cookie不是很安全&#xff0c;别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session。 3、session会在一定时间内保存在服务器上。当访问增多&#xff0c;会比较占用你服务器…

ubuntu下anaconda3+pygame

有是很无语的地方&#xff0c;网上教程一堆&#xff0c;又是要下载什么包&#xff0c;然后又是什么依赖乱七八糟的整一堆。都不知道怎么想的 试了 sudo apt-get install python-pygame 这个是行不通的&#xff01;&#xff01;&#xff01;根本没有任何卵用 害我捯饬了半天&am…

react 判断图片是否加载完成_React中型项目的优化实践

项目介绍整个项目大概有60个页面&#xff0c;用到的组件大概150&#xff0c;package里面的依赖大概有70个&#xff0c;应该勉强算得上是一个中型的React的项目了。下面给大家看看我们现在build一次项目的结果--打包时间约150s&#xff0c;打包完之后的资源gzip之后约1.2m&#…

搭建本地wordpress

1.首先&#xff0c;下载xampp&#xff0c;安装按默认勾选即可。 2.安装完成后&#xff0c;启动Apache和MySQL这两个服务。 启动后变成绿色&#xff0c;表示启动成功。 3.点击MySQL项的Admin进入数据库后台。 4.点击用户账户新建用户。 5.填写用户名&#xff0c;host name选本地…

编写Java批注

Java 批注的允许的属性类型刻意非常严格&#xff0c;但是允许的类型也可以使用一些简洁的复合批注类型。 考虑教程站点中的示例注释&#xff1a; package annotation; interface ClassPreamble {String author();String[] reviewers(); }在这里&#xff0c;作者和审阅者具有St…

Python基础【day02】:字符串(四)

在Python中字符串本身有带很多操作&#xff0c;字符串的特性&#xff0c;不可以被修改 0、字符串常用功能汇总 1、字符串的定义 #定义空字符串>>> name#定义非空字符串 >>> name"luoahong"#通过下标访问 >>> name[1] u#不能修改字符串的值…

cryptojs vue 使用_VueJs里利用CryptoJs实现加密及解密

第一步 安装安装crypto-js第二步 创建在js文件目录下创建一个js文件secret/*** 对页面上输入的密码进行加密传输给后台进行验证&#xff0c;对返回的数据进行解密&#xff0c;在页面展示*/let CryptoJS require(crypto-js); // 引入AES源码jsexport default {/** 对密码进行加…

html5 窗口变形,HTML5画布(变形)

坐标变换案例1&#xff1a;function draw(){var cdocument.getElementById("myCanvas");var cxt c.getContext("2d");cxt.translate(200,50);cxt.fillStylergba(255,0,0,0.25);for(var i0;i<40;i){cxt.translate(25,25);cxt.scale(0.9,0.9);cxt.rotate(…

appium GUI介绍

Appium作为APP端的自动化测试工具&#xff0c;具有很多的有点&#xff0c;今天主要介绍一下它的UI界面&#xff0c;包含其中的一些参数等。主要说的是windows下的APPIUM GUI。 先看一眼它的界面(版本为1.4.16.1) 注: 1.android Settings - Android设置按钮&#xff0c;所有和安…

迭代器模式和Java

大家好&#xff0c;在本文中&#xff0c;我们将检查Iterator Pattern 。 我知道你们中许多人已经使用过一种设计模式&#xff0c;但是也许您没有意识到它是模式&#xff0c;或者不知道它的巨大价值。 根据《 Head First Design 》一书&#xff1a; 迭代器模式提供了一种在不暴…

不使用JavaScript实现菜单的打开和关闭

我在写有菜单栏的网页时&#xff0c;基本都会用响应式设计来适配移动端&#xff0c;例如把不重要的菜单选项隐藏&#xff0c;或者创建一个菜单按钮来控制的菜单的打开和关闭之类的。而我之前一直是使用JavaScript来实现菜单的打开和关闭的&#xff0c;但最近在网上看到有人使用…