CodeForces - 426B(对称图形)
2016-05-24 10:16
603 查看
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; }
相关文章推荐
- select、poll、epoll之间的区别总结(转)
- 被释放遇到的Crash message sent to deallocated instance
- CodeForces - 426A(排序)
- Codeforces 424C(异或)
- HDU 2686 Matrix||HDU 3376 Matrix Again (拆点费用流)
- 某单位“高质量软件需求工程”内训圆满结束!
- CodeForces - 424B (贪心算法)
- Codeforces 424A (思维题)
- 辗转相除法的证明
- session 、cookie、token的区别
- CodeForces - 420A (字符对称问题)
- 以前在网络相关的公司学到的,记录一下,http协议和https协议的区别
- CodeForces - 417E(随机数)
- CodeForces - 417B (思维题)
- CodeForces - 417A(思维题)
- 属性访问函数
- CodeForces - 416A (判断大于小于等于 模拟题)
- 使用Redis保存Spring session(基于XML配置文件)
- session 、cookie、token的区别
- CodeForces - 407A