从来没有觉得枚举有多费脑子的。但是这道题还是很香的。

思路:就是非常简单的枚举啦。   从一般的枚举开始考虑。一般的做法就是在所有的格子中有两种状态1, 0. 而一共有225个格子,所有一共要枚举的情况就是2255我们大概粗略的计算一下10大约是23则,时间复杂度大概是1085而实际的情况比这个要高。肯定不行。

   但是,通过打草稿发现,只要第一行确定了第二行一定是唯一的,同理第三行也是唯一的。这样的话直接枚举第一行就行了呀!

#include<cstring>
#include<iostream>
using namespace std;
const int maxn=20;
const int INF=1e9;int t, n, a[maxn][maxn], b[maxn][maxn];
int check(int s){memset(b, 0, sizeof(b));for(int c=0;c<n;++c)if(s&(1<<c))b[0][c]=1;else if(a[0][c]==1)return INF;for(int r=1;r<n;++r)for(int c=0;c<n;++c){int sum=0;if(r-2>=0)sum+=b[r-2][c];if(r-1>=0&&c-1>=0)sum+=b[r-1][c-1];if(r-1>=0&&c+1<n)sum+=b[r-1][c+1];b[r][c]=sum%2;if(a[r][c]==1&&b[r][c]==0)return INF;}int cnt=0;for(int r=0;r<n;++r)for(int c=0;c<n;++c)if(a[r][c]!=b[r][c])++cnt;return cnt;
}int main(){cin>>t;for(int kase=1;kase <=t;++kase){cin>>n;for(int r=0;r<n;++r)for(int c=0;c<n;++c)cin>>a[r][c];int ans=INF;for(int s=0; s<(1<<n); ++s)ans=min(ans, check(s));if(ans==INF)ans=-1;cout<<"Case "<<kase<<": "<<ans<<endl;}
}

转载于:https://www.cnblogs.com/ALINGMAOMAO/p/10731014.html

Even Parity UVA - 11464 (枚举)相关推荐

  1. 【巧妙算法系列】【Uva 11464】 - Even Parity 偶数矩阵

    偶数矩阵(Even Parity, UVa 11464) 给你一个n×n的01矩阵(每个元素非0即1),你的任务是把尽量少的0变成1,使得每个元素的上.下.左.右的元素(如果存在的话)之和均为偶数.比 ...

  2. uva 11464 Even Parity

    https://vjudge.net/problem/UVA-11464 题意: 给出一个0,1矩阵,现在要求把这个矩阵中的某些0改为1,使得这个矩阵中每个格子的上下左右格子(如果存在)的值之和为偶数 ...

  3. Uva 11464 偶数矩阵

    题目链接:https://uva.onlinejudge.org/external/114/11464.pdf 和开关问题类似,只不过现在是用的位运算操作更简单了,其中要注意的是,只能将0变成1. 1 ...

  4. C#中串口通信编程 收藏

    C#中串口通信编程 收藏 本文将介绍如何在.NET平台下使用C#创建串口通信程序,.NET 2.0提供了串口通信的功能,其命名 空间是System.IO.Ports.这个新的框架不但可以访问计算机上的 ...

  5. C#编写串口通信程序(转)

    一.概述 在Visual Studio 6.0中编写串口通讯程序,一般都使用Microsoft Communication Control(简称MSComm)的通讯控件,只要通 过对此控件的属性和事件 ...

  6. π-Algorithmist分类题目(1)

    原题网站:Algorithmist,http://www.algorithmist.com/index.php/Main_Page π-Algorithmist分类题目(1) Sorting UVAL ...

  7. 大白书 1.3节 高效算法设计举例

    大白书 1.3节 高效算法设计举例 例题 17 UVA 11462 简单题,注意那个数值的范围是100以内就可以了. #include <cstdio> #include <cstr ...

  8. UVa LA 4253 UVa 1421 Archery 枚举,状态削减,oj错误题目 难度: 1

    题目 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&a ...

  9. UVA 1616 Caravan Robbers 【二分+贪心+枚举分母】

    题目链接 题意 给n个互不相包含的区间,求出一个长度的最大值,使得可以在每个区间中选出这样一个长度的子区间,这些子区间互不相交.结果用分数表示 分析 先考虑如果给定了区间长度能不能选出这样的区间.因为 ...

最新文章

  1. 总量迈过90万亿元关口 中国经济交出稳健答卷
  2. Java API —— Collections类
  3. java 获取字符串长度_ava练习实例:java字符串长度与Java String charAt() 方法 (建议收藏)...
  4. 程序员的未来真的一片阴霾吗,大厂女程序员从未摆脱焦虑
  5. matlab插值与拟合例题_菜鸟进阶系列:MATLAB数学建模·数据插值与拟合
  6. json格式的字符串序列化和反序列化的一些高级用法
  7. LeetCode 1502. 判断能否形成等差数列
  8. html动画曲线快速结束,CSS3 animation动画
  9. 题解P3951【小凯的疑惑】
  10. 你见过使用寿命最长的手机有多少年?
  11. 关于Apache2.4版本的phpMyAdmin的配置
  12. HDR色调映射(一):基础概念
  13. BIGO 使用 Flink 做 OLAP 分析及实时数仓的实践和优化
  14. 【GPS】 根据GPS坐标求取两点间距离算法
  15. allennlp使用
  16. 06_openwRT Voice之TAPI与VoIP的应用编程
  17. ENVI_IDL:批量拼接Modis Swath的逐日数据并输出为Geotiff格式
  18. windows升级卡在配置更新96%
  19. PC上无法捕捉vlan tag的原因
  20. java+单子_Java设计模式之单子模式应用

热门文章

  1. 人类如何从不同角度识别物体?你需要对「小样本学习」有所了解
  2. 开发者进阶宝典,HarmonyOS 职业认证全奉上
  3. 为什么你那么努力,却很难突破技术瓶颈?
  4. 5G 时代的 Android App 开发入门与项目实战
  5. 揭秘:GitHub Star 5W人追更,这个框架是打工人石锤了!
  6. 计算机巨星陨落!图灵奖得主 Edmund Clarke 因感染“新冠”逝世
  7. cocos2d-x 3.x 场景切换特效大集合
  8. 浅谈微服务的来龙去脉
  9. qq邮箱高频率邮件来源自动屏蔽的信任办法
  10. 使用 git.oschina 码云 来托管 Hexo 搭建的博客