CodeForces - 426B(对称图形)
2016-04-23 18:46
483 查看
Sereja and Mirroring
Submit Status
Description
Let's assume that we are given a matrix b of size x × y, let's determine the operation of mirroring matrix b. The mirroring of matrix b is a2x × y matrix c which has the following properties:
the upper half of matrix c (rows with numbers from 1 to x) exactly matches b;
the lower half of matrix c (rows with numbers from x + 1 to 2x) is symmetric to the upper one; the symmetry line is the line that separates two halves (the line that goes in the middle, between rows x and x + 1).
Sereja has an n × m matrix a. He wants to find such matrix b, that it can be transformed into matrix a, if we'll perform on it several(possibly zero) mirrorings. What minimum number of rows can such matrix contain?
Input
The first line contains two integers, n and m(1 ≤ n, m ≤ 100). Each of the next n lines contains m integers — the elements of matrix a. The i-th line contains integers ai1, ai2, ..., aim(0 ≤ aij ≤ 1) — the i-th row of the matrix a.
Output
In the single line, print the answer to the problem — the minimum number of rows of matrix b.
Sample Input
Input
Output
Input
Output
Input
Output
Hint
In the first test sample the answer is a 2 × 3 matrix b:
If we perform a mirroring operation with this matrix, we get the matrix a that is given in the input:
Source
Codeforces Round #243 (Div. 2)
Time Limit: 1000MS | Memory Limit: 262144KB | 64bit IO Format: %I64d & %I64u |
Description
Let's assume that we are given a matrix b of size x × y, let's determine the operation of mirroring matrix b. The mirroring of matrix b is a2x × y matrix c which has the following properties:
the upper half of matrix c (rows with numbers from 1 to x) exactly matches b;
the lower half of matrix c (rows with numbers from x + 1 to 2x) is symmetric to the upper one; the symmetry line is the line that separates two halves (the line that goes in the middle, between rows x and x + 1).
Sereja has an n × m matrix a. He wants to find such matrix b, that it can be transformed into matrix a, if we'll perform on it several(possibly zero) mirrorings. What minimum number of rows can such matrix contain?
Input
The first line contains two integers, n and m(1 ≤ n, m ≤ 100). Each of the next n lines contains m integers — the elements of matrix a. The i-th line contains integers ai1, ai2, ..., aim(0 ≤ aij ≤ 1) — the i-th row of the matrix a.
Output
In the single line, print the answer to the problem — the minimum number of rows of matrix b.
Sample Input
Input
4 3 0 0 1 1 1 0 1 1 0 0 0 1
Output
2
Input
3 3 0 0 0 0 0 0 0 0 0
Output
3
Input
8 1 0 1 1 0 0 1 1 0
Output
2
Hint
In the first test sample the answer is a 2 × 3 matrix b:
001 110
If we perform a mirroring operation with this matrix, we get the matrix a that is given in the input:
001 110
110
001
Source
Codeforces Round #243 (Div. 2)
#include <iostream> #include <algorithm> #include <string.h> #include <stdlib.h> #include <math.h> #include <stdio.h> using namespace std; int a[105][105]; int main() { int i,j,ii,jj,m,n,tmp,ans; scanf("%d%d",&n,&m); ans=n; for(i=0;i<n;i++) for(j=0;j<m;j++) scanf("%d",&a[i][j]); int flag=1; while(n%2==0) { for(i=0;i<n/2;i++) { for(j=0;j<m;j++) { if(a[i][j]!=a[n-1-i][j]) { flag=0; break; } } if(flag==0) break; } if(flag) n/=2; else break; } printf("%d\n",n); return 0; }
相关文章推荐
- Dagger2学习之Hello Dagger
- 微机汇编语言中的标识符
- java笔试题之----将阿拉伯数字转换成中文
- http://www.cnblogs.com/Matrix54/archive/2012/05/03/2481260.html
- cows(树状数组)
- iOS开发动画(Animation)图片360度不停旋转
- CodeForces - 426A(排序)
- 欢迎使用CSDN-markdown编辑器
- Android 热补丁动态修复框架小结
- shader forge初级篇|数据维度的附加与分解
- ERROR ORA-12541: TNS:no listener
- C语言小游戏设计报告
- 编写高质量JavaScript代码的一些建议
- MySQL中的datetime与timestamp区别比较,以及选择方法
- Java类集(List,Vector,map……) (1)
- mysql主从复制汇总
- HTML:关于HTML的Doctype和严格模式与混杂模式
- 2016sdau课程练习专题二 1019
- 是时候学习一波Lambda表达式了
- 查询数据库的 sql语句 返回字段 和类 属性的关系