【佛山市选2013】JZOJ2020年8月7日提高组T1 回文子序列
【佛山市选2013】JZOJ2020年8月7日提高组T1 回文子序列
题目
描述
回文序列是指左右对称的序列。例如1 2 3 2 1是回文序列,但是1 2 3 2 2就不是。我们会给定一个N×M的矩阵,你需要从这个矩阵中找出一个P×P的子矩阵,使得这个子矩阵的每一列和每一行都是回文序列。
数据
对于20%数据 1 ≤ N, M ≤ 10
对于所有数据 1 ≤ N, M ≤ 300
题解
题意
在一个\(n*m\)的矩阵内找到一个最大的\(p*p\)的子矩阵使得该子矩阵内的每行每列都是回文
输出\(p\)
分析
这种题嘛
想打\(manacher\)也没问题,反正我是不会 (有巨佬\(manacher+dp\))
所以我就打暴力
枚举起点和\(p\)
然后暴力判断是否合法
算一下之间复杂度
枚举起点和\(p\)是\(O(n*m*min(n,m))\)
暴力判断是\(O(\dfrac{n^2*m^2}{4})\)
所以说总的时间复杂度就是\(O(\dfrac{n^3*m^3*min(n,m)}{4})\)
按理说\(n,m≤300\)过不去的
但数据太水就过去了QAQ
Code
#include<cstdio>
#include<iostream>
using namespace std;
int n,m,i,j,k,u,x,y,ans,a[305][305];
bool bj;
int main()
{
freopen("T1.in","r",stdin);
freopen("T1.out","w",stdout);
scanf("%d%d",&n,&m);
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
scanf("%d",&a[i][j]);
for (i=1;i<=n;i++)
for (j=1;j<=m;j++)
for (k=0;k<=n-i&&k<=m-j;k++)
{
bj=true;
for (u=i;u<=i+k;u++)
{
x=j;
y=j+k;
while (x<=y)
{
if (a[u][x]!=a[u][y])
{
bj=false;
break;
}
x++;
y--;
}
if (bj==false) break;
}
for (u=j;u<=j+k;u++)
{
x=i;
y=i+k;
while (x<=y)
{
if (a[x][u]!=a[y][u])
{
bj=false;
break;
}
x++;
y--;
}
if (bj==false) break;
}
if (bj==true) ans=max(ans,k+1);
}
printf("%d\n",ans);
fclose(stdin);
fclose(stdout);
return 0;
}
【佛山市选2013】JZOJ2020年8月7日提高组T1 回文子序列的更多相关文章
- 【GDOI2007】JZOJ2020年8月10日提高组T1 夏娜的菠萝包
[GDOI2007]JZOJ2020年8月10日提高组T1 夏娜的菠萝包 题目 Description 夏娜很喜欢吃菠萝包,她的经纪人RC每半个月就要为她安排接下来的菠萝包计划.今天是7月份,RC又要 ...
- JZOJ2020年8月11日提高组T1 密码
JZOJ2020年8月11日提高组T1 密码 题目 Description 在浩浩茫茫的苍穹深处,住着上帝和他的神仆们,他们闲谈着下界的凡人俗事,对人世间表现的聪明智慧,大加赞赏.今天他们正在观赏大地 ...
- 【GDKOI2014】JZOJ2020年8月13日提高组T1 阶乘
[GDKOI2014]JZOJ2020年8月13日提高组T1 阶乘 题目 Description Input 第一行有一个正整数T,表示测试数据的组数. 接下来的T行,每行输入两个十进制整数n和bas ...
- 【五校联考1day2】JZOJ2020年8月12日提高组T1 对你的爱深不见底
[五校联考1day2]JZOJ2020年8月12日提高组T1 对你的爱深不见底 题目 Description 出乎意料的是,幸运E 的小R 居然赢了那个游戏.现在欣喜万分的小R 想要写一张明信片给小Y ...
- 【NOIP2012模拟8.7】JZOJ2020年8月8日提高组T1 奶牛编号
[NOIP2012模拟8.7]JZOJ2020年8月8日提高组T1 奶牛编号 题目 作为一个神秘的电脑高手,Farmer John 用二进制数字标识他的奶牛. 然而,他有点迷信,标识奶牛用的二进制数字 ...
- 【佛山市选2013】JZOJ2020年8月7日提高组T3 海明距离
[佛山市选2013]JZOJ2020年8月7日提高组T3 海明距离 题目 描述 对于二进制串a,b,他们之间的海明距离是指两个串异或之后串中1的个数.异或的规则为: 0 XOR 0 = 0 1 XOR ...
- 【佛山市选2013】JZOJ2020年8月7日提高组T2 树环转换
[佛山市选2013]JZOJ2020年8月7日提高组T2 树环转换 题目 描述 给定一棵N个节点的树,去掉这棵树的一条边需要消耗值1,为这个图的两个点加上一条边也需要消耗值1.树的节点编号从1开始.在 ...
- 【五校联考1day2】JZOJ2020年8月12日提高组T2 我想大声告诉你
[五校联考1day2]JZOJ2020年8月12日提高组T2 我想大声告诉你 题目 Description 因为小Y 是知名的白富美,所以自然也有很多的追求者,这一天这些追求者打算进行一次游戏来踢出一 ...
- JZOJ2020年8月11日提高组T4 景点中心
JZOJ2020年8月11日提高组T4 景点中心 题目 Description 话说宁波市的中小学生在镇海中学参加计算机程序设计比赛,比赛之余,他们在镇海中学的各个景点参观.镇海中学共有n个景点,每个 ...
随机推荐
- P2868 [USACO07DEC]Sightseeing Cows G
题意描述 Sightseeing Cows G 给定一张有向图,图中每个点都有点权 \(a_i\),每条边都有边权 \(e_i\). 求图中一个环,使 "环上个点权之和" 除以 & ...
- node+express如何接收fromData
使用express-formidable来进行解析 安装 express-formidable npm install express-formidable 在app.js里放入已下代码 const ...
- 10万用户一年365天的登录情况如何用redis存储,并快速检索任意时间窗内的活跃用户
1.redsi的bitmap数据结构介绍 bitmap本质上是一个string类型,只是他操作的是string的某个位是0还是1. setbit和getbit 两条命令是对字符串的位操作.每个位只能是 ...
- knn-demo
from __future__ import print_functionfrom numpy import *# 导入科学计算包numpy和运算符模块operatorimport operatorf ...
- 虚拟机中安装Centos 7
VMware中安装centos7系统 一.首先需要准备必要文件 1.VMware软件的安装包,建议使用12以上版本 VMwareWorkstation14版本下载链接 链接:https://pan.b ...
- Pytest学习(七) - skip、skipif的使用
前言 作为一个java党,我还是觉得pytest和testng很像,有时候真的会感觉到代码语言在某种程度上是相通的,那么今天来说说这两个知识点. skip和skipif,见名知意,就是跳过测试呗,直白 ...
- php判断手机浏览器和pc浏览器
<?php public function is_mobile(){ // returns true if one of the specified mobile browsers is det ...
- ngx accept_mutex
尝试获取锁,如果获取了锁,那么还要将当前监听端口全部注册到当前worker进程的epoll当中去 获取失败就需要确保此时ls-fd 没有被 epoll 监听 ngx_int_t ngx_tryloc ...
- Java学习之Swing Gui编程
Java学习之Swing Gui编程 0x00 前言 前面的使用的Gui是基于Awt 去进行实现,但是在现实写Gui中 AWT实际运用会比较少. 0x01 Swing 概述 AWT 和Swing 区别 ...
- Guitar Pro 功能介绍之RSE引擎
众所周知,Guitar Pro是一个集多音轨丰富音色库的一款软件,并且拥有MIDI 音序器,但是光拥有MIDI是无法让我们制作的音乐可以如此逼真,而Guitar Pro能创造制作这么逼真的音乐,多亏了 ...