/*hud4512
dp[i]表示当前以下标i结束的最长公共上升子序列。 我们让第一个序列为原序列,第二个序列为原系列的反向。 则,也就是说,第二个序列的顺序为原序列的下标[n-1,0],设为j 当j枚举到k时,对于dp[0] ~ dp[k-1],都可以得到原序列的一个长度为2*dp[i]的题目要求的子序列。 可是对于,dp[k],我们怎么判断此时,两个序列是否存在交集呢?假如存在交集,此时题目要求的子序列长度为2*dp[k] - 1 这样考虑,假如此时的序列没有交集,则此时两个序列的最长公共上升子序列,在序列二中的起始坐标必然不是k   那么它必然在j=[k+1,n-1]的时候已经出现过,并以dp[k]*2更新过ans 也就是说根本不用考虑嘛。。。直接将用dp[k]*2-1更新ans,答案并不会有错 PS:原序列和反序列的公共部分不一定都是回文,你所找的最长公共子序列一定是最开始找到的
你找到的不是回文的子序列长度一定不大于是回文的
所以说你只要长度
直接输出没问题
你要序列
只找第一个就行
只要保证一个在前面一个在后面
两个匹配的
后面的不超过前面的
所以有了k
/*hud4512*/
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
using namespace std;
const int maxn = ;
int a[maxn], b[maxn];
int dp[maxn];
int max(int a,int b)
{
if(a>b) return a;
return b;
}
int solve(int n,int m)
{
memset(dp,,sizeof(dp));
int ans = ;
for(int i =; i<=n; i++)
{
int tmp = ;
for(int j =; j<=(n-i+); j++)//保证两个序列没有交集,不能遍历到m1 3 2 1 3就是反例
{
if(a[i] > b[j])
tmp = max(tmp,dp[j]);
else if(a[i] == b[j])
dp[j] = max(dp[j],tmp+);
if(j<(n-i+)) ans = max(ans, dp[j]*);
else ans = max(ans, dp[j]*-);//那么说明j是中点
}
}
return ans;
} int main()
{
int T;
int n;
scanf("%d",&T);
while(T--)
{
scanf("%d", &n);
for(int i = ,j=n; i <= n; i++,j--)
{
scanf("%d", &a[i]);
b[j] = a[i];
}
printf("%d\n",solve(n,n));
}
return ;
}

吉哥系列故事——完美队形I的更多相关文章

  1. HDU 4513 吉哥系列故事——完美队形II manacher

    吉哥系列故事——完美队形II Problem Description 吉哥又想出了一个新的完美队形游戏! 假设有n个人按顺序站在他的面前,他们的身高分别是h[1], h[2] ... h[n],吉哥希 ...

  2. LCIS HDOJ 4512 吉哥系列故事——完美队形I

    题目传送门 题意:中文题面 分析:LCIS应用:设置b[]为a[]的反转,然后LCIS,若相等的是自己本身,则+1, 否则+2 代码: #include <cstdio> #include ...

  3. hdu----(4513)吉哥系列故事——完美队形II(manacher(最长回文串算法))

    吉哥系列故事——完美队形II Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)To ...

  4. (回文串 Manacher)吉哥系列故事——完美队形II -- hdu -- 4513

    http://acm.hdu.edu.cn/showproblem.php?pid=4513 吉哥系列故事——完美队形II Time Limit: 3000/1000 MS (Java/Others) ...

  5. HDUOJ-----4512吉哥系列故事——完美队形I(LCIS)

    吉哥系列故事——完美队形I Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Tot ...

  6. hdu 4513 吉哥系列故事——完美队形II (manachar算法)

    吉哥系列故事——完美队形II Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) P ...

  7. HDU4513:吉哥系列故事——完美队形II(Manacher)

    吉哥系列故事——完美队形II Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)To ...

  8. hdu 4512 吉哥系列故事——完美队形I【LCIS经典应用】

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=4512 http://acm.hust.edu.cn/vjudge/contest/view.action ...

  9. hdu-4513吉哥系列故事——完美队形II--最长回文

    吉哥系列故事——完美队形II Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)To ...

  10. HDU 4512——吉哥系列故事——完美队形I——————【LCIS应用】

    吉哥系列故事——完美队形I Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Tot ...

随机推荐

  1. 【BZOJ2095】[Poi2010]Bridges 动态加边网络流

    [BZOJ2095][Poi2010]Bridges Description YYD为了减肥,他来到了瘦海,这是一个巨大的海,海中有n个小岛,小岛之间有m座桥连接,两个小岛之间不会有两座桥,并且从一个 ...

  2. window 发布已编译好的ASP文件到IIS

    1.进入window 7的控制面板,点击程序,选择程序和功能中的 打开或关闭Windows功能.安装IIS

  3. node.js创建server服务---sublime 的node及typescript环境配置

    一.初始环境搭建 mkdir server //创建server文件夹 cd server //进入到创建的文件夹目录下 npm init -y //生成含有默认配置的package.json文件 n ...

  4. APNS/苹果推送服务

    Apple Push Notification Service Google Cloud Message/Google 云 消息 Firebase Cloud Messaging

  5. MSSQL移除字符串两边的指定字符

    移除字符串左边的字符: CREATE FUNCTION [dbo].[RemoveLeftChar] ( @Expression varchar(max), @char varchar(4))RETU ...

  6. ipconfig /flushdns

    C:\Users\sas>ipconfig /flushdns Windows IP 配置 已成功刷新 DNS 解析缓存. C:\Users\sas>ipconfig --help 错误: ...

  7. 品友互动大数据平台的技术演化 https://www.sohu.com/a/191202836_99982360

    品友互动大数据平台的技术演化

  8. Linux yum 安装 Nginx

    搭建 Nginx 静态服务器 安装 Nginx 使用 yum 安装 Nginx: yum install nginx -y 修改 /etc/nginx/conf.d/default.conf,去除对 ...

  9. 解决Bat脚本中包含中文,运行乱码

    bat文件右键用“编辑” 打开, 另存为时,UTF-8保存为ANSI 格式.即可解决运行时乱码问题.

  10. java基础03变量和基本数据类型

    package cn.bdqn.test; /** * * @author 小豆腐 * * 变量:会变化的量?? * 一个数据在内存中存储空间的表示!在运行期间可以动态改变! * * 关键字:在jav ...