HDU - 4618 H - Palindrome Sub-Array
2017-04-06 18:20
316 查看
A palindrome sequence is a sequence which is as same as its reversed order. For example, 1 2 3 2 1 is a palindrome sequence, but 1 2 3 2 2 is not. Given a 2-D array of N rows and M columns, your task is to find a maximum sub-array
of P rows and P columns, of which each row and each column is a palindrome sequence.
Input The first line of input contains only one integer, T, the number of test cases. Following T blocks, each block describe one test case.
There is two integers N, M (1<=N, M<=300) separated by one white space in the first line of each block, representing the size of the 2-D array.
Then N lines follow, each line contains M integers separated by white spaces, representing the elements of the 2-D array. All the elements in the 2-D array will be larger than 0 and no more than 31415926.Output For each test case, output P only, the size of the maximum sub-array that you need to find.Sample Input
Sample Output
4
题意:给你一个大的矩阵,然后让你计算出该矩阵中每行每列都是回文串的正方形子矩阵的个数
暴力水过不科学
ac代码:
of P rows and P columns, of which each row and each column is a palindrome sequence.
Input The first line of input contains only one integer, T, the number of test cases. Following T blocks, each block describe one test case.
There is two integers N, M (1<=N, M<=300) separated by one white space in the first line of each block, representing the size of the 2-D array.
Then N lines follow, each line contains M integers separated by white spaces, representing the elements of the 2-D array. All the elements in the 2-D array will be larger than 0 and no more than 31415926.Output For each test case, output P only, the size of the maximum sub-array that you need to find.Sample Input
1 5 10 1 2 3 3 2 4 5 6 7 8 1 2 3 3 2 4 5 6 7 8 1 2 3 3 2 4 5 6 7 8 1 2 3 3 2 4 5 6 7 8 1 2 3 9 10 4 5 6 7 8
Sample Output
4
题意:给你一个大的矩阵,然后让你计算出该矩阵中每行每列都是回文串的正方形子矩阵的个数
暴力水过不科学
ac代码:
#include <iostream> #include <cstdio> #include <cstring> using namespace std; int map[305][305],x,y; int solve(int a,int b,int ans) { if(a+ans>x||b+ans>y) return 0; for(int i=a;i<a+ans;i++) { for(int j=b;j<b+ans;j++) { if(map[i][j]!=map[i][b+ans-1-j+b]||map[i][j]!=map[a+ans-1-i+a][j]) return 0; } } return 1; } int main() { int n; cin>>n; while(n--) { cin>>x>>y; for(int i=0;i<x;i++) for(int j=0;j<y;j++) scanf("%d",&map[i][j]); int sum=min(x,y); int flag=0; for(int i=sum;i>=1;i--) { for(int j=0;j<x;j++) { for(int k=0;k<y;k++) { if(solve(j,k,i)) { printf("%d\n",i); flag=1; break; } } if(flag==1) break; } if(flag==1) break; } } }
相关文章推荐
- HDU 4618 Palindrome Sub-Array
- HDU-4618-Palindrome Sub-Array
- hdu 4618 Palindrome Sub-Array
- hdu 4618 Palindrome Sub-Array(dp)
- HDU 4618 Palindrome Sub-Array (2013多校2 1008 暴力)
- Hdu 4618 Palindrome Sub-Array
- hdu 4618——Palindrome Sub-Array
- HDU 4618 Palindrome Sub-Array(DP)
- hdu 4618 Palindrome Sub-Array
- HDU 4618Palindrome Sub-Array(暴力枚举每一个正方形)
- HDU 4618 - Palindrome Sub-Array(2013MUTC2-1008)(DP)
- HDU 4618 Palindrome Sub-Array (HASH + 枚举)
- HDU 4618 Palindrome Sub-Array(Manacher、二分)
- 2013 多校第二场 hdu 4618 Palindrome Sub-Array
- hdu 4618 Palindrome Sub-Array 多校第二场
- HDU 4618 Palindrome Sub-Array 二分(奇偶)+hash判断是否对称
- HDU 4618 Palindrome Sub-Array(最大回文子矩阵)
- HDU 4618 Palindrome Sub-Array
- HDU 4618 Palindrome Sub-Array 暴力
- HDU 4618 - Palindrome Sub-Array(2013MUTC2-1008)(DP)