Uva 11464 偶数矩阵
题目链接:https://uva.onlinejudge.org/external/114/11464.pdf
和开关问题类似,只不过现在是用的位运算操作更简单了,其中要注意的是,只能将0变成1.
1 #include <bits/stdc++.h> 2 3 using namespace std; 4 5 #define inf 0x3f3f3f3f 6 7 int a[20][20]; 8 int b[20][20]; 9 int n; 10 11 int dr[3] = {-1,0,0}; 12 int dc[3] = {0,-1,1}; 13 14 int sum(int di,int dj) { 15 int ans = 0; 16 for(int i=0;i<3;i++) 17 { 18 int dx = di + dr[i]; 19 int dy = dj + dc[i]; 20 21 if(dx>=0&&dx<n&&dy>=0&&dy<n) 22 ans +=b[dx][dy]; 23 } 24 return ans; 25 } 26 27 bool test(int i) { 28 int x = sum(n-1,i); 29 if(x%2) 30 return false; 31 else return true; 32 } 33 34 int check(int s) { 35 36 37 for(int i=0;i<n;i++) 38 if(s&(1<<i)) b[0][i] = 1; 39 else b[0][i] = 0; 40 41 for(int i=0;i<n-1;i++) 42 { 43 for(int j=0;j<n;j++) { 44 int x = sum(i,j); 45 if(x%2==0) 46 b[i+1][j] = 0; 47 else b[i+1][j] = 1; 48 } 49 } 50 51 for(int i=0;i<n;i++) 52 if(!test(i)) 53 return inf; 54 55 int ans = 0; 56 for(int i=0;i<n;i++) { 57 for(int j=0;j<n;j++) 58 { 59 if(a[i][j]==1&&b[i][j]==0) 60 return inf; 61 } 62 } 63 64 for(int i=0;i<n;i++) 65 { 66 for(int j=0;j<n;j++) 67 if(a[i][j]!=b[i][j]) 68 ans++; 69 } 70 return ans; 71 } 72 73 int main() 74 { 75 int kase = 1,t; 76 scanf("%d",&t); 77 while(t--) { 78 79 scanf("%d",&n); 80 81 for(int i=0;i<n;i++) 82 for(int j=0;j<n;j++) 83 scanf("%d",&a[i][j]); 84 85 int ans = inf; 86 for(int s=0;s<(1<<n);s++) 87 ans = min(ans,check(s)); 88 89 printf("Case %d: ",kase++); 90 if(ans==inf) 91 printf("-1\n"); 92 else printf("%d\n",ans); 93 } 94 return 0; 95 }
转载于:https://www.cnblogs.com/TreeDream/p/6357744.html
Uva 11464 偶数矩阵相关推荐
- 【巧妙算法系列】【Uva 11464】 - Even Parity 偶数矩阵
偶数矩阵(Even Parity, UVa 11464) 给你一个n×n的01矩阵(每个元素非0即1),你的任务是把尽量少的0变成1,使得每个元素的上.下.左.右的元素(如果存在的话)之和均为偶数.比 ...
- UVA11464偶数矩阵
题意: 给你一个n*n的01矩阵,你的你的任务是吧尽量少的0变成1,使得每个元素的上下左右之和均为偶数(如果有的话),比如 0 0 0 0 1 0 1 0 0 ---&g ...
- uva 11464 Even Parity
https://vjudge.net/problem/UVA-11464 题意: 给出一个0,1矩阵,现在要求把这个矩阵中的某些0改为1,使得这个矩阵中每个格子的上下左右格子(如果存在)的值之和为偶数 ...
- UVA 10870 Recurrences 矩阵快速幂
题意:给你递推公式要求矩阵快速幂的第n项 解题思路: 经典的矩阵快速幂递推第n项目做法. 解题代码: 1 // File Name: temp.cpp 2 // Author: darkdream 3 ...
- Even Parity UVA - 11464 (枚举)
从来没有觉得枚举有多费脑子的.但是这道题还是很香的. 思路:就是非常简单的枚举啦. 从一般的枚举开始考虑.一般的做法就是在所有的格子中有两种状态1, 0. 而一共有225个格子,所有一共要枚举的情 ...
- Z字形扫描(对矩阵进行Z字形扫描)
问题描述: 在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zigzag Scan).给定一个n×n的矩阵,Z字形扫描的过程如下图所示: 对于下面的4×4的矩阵, 1 5 3 9 3 7 ...
- even parity
转自http://www.acmerblog.com/uva-11464-even-parity-4653.html 这道题的算法实现态变态了,奇妙的技巧,至少我是这样认为的.我想了很久也不会,书上代 ...
- C++矩阵的对角线之和
下面我会围绕奇数型矩阵和偶数型矩阵来展开. 什么是奇数型矩阵? eg.a[3][3].a[5][5].a[7][7].a[9][9]- 什么是偶数型矩阵? eg.a[4][4].a[6][6].a[8 ...
- 基于IOS平台的游戏之小拼图
IOS/Xcode工具 一:主要功能 在拼图小游戏开发过程中,实现的主要的功能. 压缩图片:需要给传递过来的任意图片,根据手机模拟器中View大小,重新设置图片的尺寸,即压缩图片运用UIGraphic ...
最新文章
- Linux 应用层的时间编程【转】
- day 03 selenium与Beautifulsoup4的原理与使用
- python pyqt eric_Python3.6 + Pyqt5 + Eric6 环境搭建
- php购物车修改单价,php – woocommerce在结帐和购物车页面更改价格
- 计算机过程控制系统教材,过程控制系统-样章试读.PDF
- 解锁用户及数据库表,锁死进程
- [UI]实用案例--Shape绘制实用圆圈
- pytorch迁移学习后使用微调策略再次提高模型训练结果
- Java 开发流程、运行原理、JVM 规范与实现
- c语言入门视频(C语言入门视频教程,共20套,全部是经典(免费下载))
- 淘晶驰串口屏下载工程慢怎么办
- windows环境下安装selenium
- (unsigned char) ~0 1
- WPF 3D 贴图: 为你的二次元老婆们做个3D画廊
- ACM算法模板小汇总
- 22长安杯——个人赛
- 基于PHP和MySql的学生成绩管理系统(附完整版代码)
- excel网页服务器端,Excel服务VI――用Excel Web Services创建应用程
- 2.线性回归,梯度下降与正规方程
- 家庭NAS服务器(3)VM测试-固态缓存盘加速机械盘