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\n", get_max(x, y));
        }
    return 0;
    }

原文地址:https://www.cnblogs.com/Tony-Double-Sky/p/9693634.html

时间: 2024-10-12 03:32:11

P4888 三去矩阵的相关文章

计算方法(三)矩阵类库

测量平差以及工科中常常用到矩阵的相关运算,因此自己写了一个,同时考虑到了类库的可用性,希望大家多多指教. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace com.WangHui { [Serializable] public class Matrix { public double[] elem

矩阵及其运算(三):矩阵的转置

矩阵的转置 数学定义:把矩阵A的行换成同序数的列得到的一个新矩阵,叫做A的转置矩阵. Public Function Trans(Optional ByVal tMatrix As Matrix = Nothing) If tMatrix Is Nothing Then tMatrix = Me '参数为空,默认为自身转置 End If Dim tempMatrix As New Matrix(tMatrix.Col, tMatrix.Row) For i = 1 To tMatrix.Col

hihoCoder #1162 : 骨牌覆盖问题&#183;三 (矩阵快速幂,DP)

题意:有一个k*n的棋盘,要求用1*2的骨牌来铺满,有多少种方案?(k<8,n<100000001) 思路: 由于k是比较小,但是又不那么小,可以专门构造这样的一个矩阵M,使得只要我们有一个初始矩阵R,求得ans矩阵,然后答案就在ans中了.ans=R*Mn. M的大小应该是2k*2k,所以当k稍微大一些就不合适存储这个矩阵了,而且里面大部分都是0,很浪费.由于k<8,所以M的大小为128*128是可以接受的.复杂度是O(23*k*logn),大概是千万级别的. 1 #include &

《UML大象》第三去阶段阅读总结

在看到本书的总结的时候我才发现总结篇就是对于现实中很多的问题进行的分析,我觉得看书还不如看前辈们的一些工作经验来的实在,所以我搜集了很多从事IT人员的工作经验,了解了他们在刚进入工作然后慢慢一步步如何成功在这个领域站住自己位置的. 对于进入职场的人来说几年的工作经验,也做过一些项目,大小公司也见过几个.对于项目型公司来说,先是销售去谈项目,然后项目经理去做需求,然后回来做项目,一般情况,项目经理首先回来大概分几个模块,每个模块大概做些什么,设计一些类,一些流程,然后程序员开始编码,中途如果有任何

python 矩阵分成上三角下三角和对角三个矩阵

diagonal Return specified diagonals. diagflat Create a 2-D array with the flattened input as a diagonal. trace Sum along diagonals. triu Upper triangle of an array. tril Lower triangle of an array. 先讲一个方阵的对角线下的下三角阵和对角线上的上三角阵提取出来(如果只需要上下三角阵,则去掉tril/tr

matlab创建三对角线矩阵

matlab生成三对角线矩阵 A=diag(repmat([6], 1, 100))+diag(repmat([1], 1, 99), 1)+diag(repmat([8], 1, 99), -1)

理解CSS3 transform中的Matrix(矩阵)

一.哥,我被你吓住了 打架的时候会被块头大的吓住,学习的时候会被奇怪名字吓住(如“拉普拉斯不等式”).这与情感化设计本质一致:界面设计好会让人觉得这个软件好用! 所以,当看到上面“Matrix(矩阵)”的时候,难免会心生畏惧(即使你已经学过),正常心理.实际上,这玩意确实有点复杂. 然而,这却是屌丝逆袭的一个好机会. CSS同行间:你是不是有这样的感觉:哎呀呀,每天就是对着设计图切页面,貌似技术没有得到实质性地提升啊,或者觉得日后高度有限! 我们应该都知道二八法则(巴莱多定律),即任何一组东西中

机器学习中的矩阵方法04:SVD 分解

机器学习中的矩阵方法04:SVD 分解 前面我们讲了 QR 分解有一些优良的特性,但是 QR 分解仅仅是对矩阵的行进行操作(左乘一个酉矩阵),可以得到列空间.这一小节的 SVD 分解则是将行与列同等看待,既左乘酉矩阵,又右乘酉矩阵,可以得出更有意思的信息.奇异值分解( SVD, Singular Value Decomposition ) 在计算矩阵的伪逆( pseudoinverse ),最小二乘法最优解,矩阵近似,确定矩阵的列向量空间,秩以及线性系统的解集空间都有应用. 1. SVD 的形式

css3 transform中的matrix矩阵

CSS3中的矩阵CSS3中的矩阵指的是一个方法,书写为matrix()和matrix3d(),前者是元素2D平面的移动变换(transform),后者则是3D变换.2D变换矩阵为3*3, 如上面矩阵示意图:3D变换则是4*4的矩阵. 有些迷糊?恩,我也觉得上面讲述有些不合时宜.那好,我们先看看其他东西,层层渐进——transform属性. 具体关于transform属性具体内容可以点击这里补个课.稍微熟悉的人都知道,transform中有这么几个属性方法: .trans_skew { trans