P4888 三去矩阵

Posted tony-double-sky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P4888 三去矩阵相关的知识,希望对你有一定的参考价值。

P4888 三去矩阵

给出一个字符矩阵, 多次询问求以 ((x, y)) 为中心的最长回文串长度(即横竖两种)
(l, q <= 2000)

Solution

数据范围小直接模拟即可

Code

#include<iostream>
#include<cstdio>
#include<queue>
#include<cstring>
#include<algorithm>
#include<climits>
#define LL long long
using namespace std;
int RD(){
    int out = 0,flag = 1;char c = getchar();
    while(c < '0' || c >'9'){if(c == '-')flag = -1;c = getchar();}
    while(c >= '0' && c <= '9'){out = out * 10 + c - '0';c = getchar();}
    return flag * out;
    }
const int maxn = 4019;
int len, na;
char map[maxn][maxn];
int get_max(int x, int y){
    int ans = -1, lenth = 1;
    while(x + lenth <= len && x - lenth >= 1){
        if(map[x + lenth][y] == map[x - lenth][y])lenth++;
        else break;
        }
    ans = lenth, lenth = 1;
    while(y + lenth <= len && y - lenth >= 1){
        if(map[x][y + lenth] == map[x][y - lenth])lenth++;
        else break;
        }
    ans = max(ans, lenth);
    return 2 * ans - 1;
    }
int main(){
    len = RD(), na = RD();
    for(int i = 1;i <= len;i++)for(int j = 1;j <= len;j++)cin>>map[i][j];
    for(int i = 1;i <= na;i++){
        int x = RD(), y = RD();
        printf("%d
", get_max(x, y));
        }
    return 0;
    }

以上是关于P4888 三去矩阵的主要内容,如果未能解决你的问题,请参考以下文章

Python代码阅读(第41篇):矩阵转置

如何将浮点矩阵作为 2D 纹理传递给片段着色器?

如何在 python 中并行化以下代码片段?

springboot开启矩阵传参MatrixVariable

将数据推回矩阵并使用 imshow 显示该矩阵

NLP一文了解词性标注CRF模型