解析

很巧妙的题
我一开始的dp设计其实是可以的
只是我误认为它的转移需要n^2
然后尝试把它压掉一维结果越跑越远…
但一个技巧是只从相邻的状态转移
使转移变成O1

代码

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N=52;
const int M=1e6+100;
ll read(){ll x=0,f=1;char c=getchar();while(!isdigit(c)){if(c=='-')f=-1;c=getchar();}while(isdigit(c)){x=x*10+(c^48);c=getchar();}return x*f;
}inline void Max(int &x,int y){if(x<y) x=y;}int n;
int dp[N][N][N][N];
int a[N];int main(){#ifndef ONLINE_JUDGEfreopen("a.in","r",stdin);freopen("a.out","w",stdout);#endifn=read();for(int i=1;i<=n;i++) a[i]=read();for(int len=1;len<=n;len++){for(int l=1;l+len-1<=n;l++){int r=l+len-1;for(int st=50;st>=1;st--){for(int ed=st;ed<=50;ed++){Max(dp[l][r][st][ed],dp[l][r][st+1][ed]);Max(dp[l][r][st][ed],dp[l][r][st][ed-1]);Max(dp[l][r][st][ed],dp[l+1][r][st][ed]+(a[l]==st));//if(dp[l][r][st][ed]) printf("1:(%d %d) dp=%d\n",st,ed,dp[l][r][st][ed]);Max(dp[l][r][st][ed],dp[l][r-1][st][ed]+(a[r]==ed));//if(dp[l][r][st][ed]) printf("2:(%d %d) dp=%d\n",st,ed,dp[l][r][st][ed]);if(l!=r) Max(dp[l][r][st][ed],dp[l+1][r-1][st][ed]+(a[r]==st)+(a[l]==ed));//if(dp[l][r][st][ed]) printf("3:(%d %d) dp=%d\n",st,ed,dp[l][r][st][ed]);}}}}//fprintf(stderr,"check=%d\n",dp[1][1][1][1]);printf("%d\n",dp[1][n][1][50]);
}
/**/

洛谷P3607:Subsequence Reversal P(区间dp)相关推荐

  1. 洛谷 P3205 [HNOI2010]合唱队(区间dp)

     题目链接: [HNOI2010]合唱队 - 洛谷https://www.luogu.com.cn/problem/P3205  思路: 这题我是看了题解才做出来的,贴一下这位大佬的博客题解 P320 ...

  2. 洛谷P1040 加分二叉树运用区间DP(动态规划)求解

    首先放上原题链接 点我,点我进入原题 什么是动态规划? 在这类问题中,可能会有许多可行解.每一个解都对应于一个值,我们希望找到具有最优值的解.而且每次求出的解不是独立的,我们需要逐层推出最优解. 以这 ...

  3. 洛谷P1220 关路灯(区间dp)

    关路灯 某一村庄在一条路线上安装了n盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少).老张就住在这条路中间某一路灯旁,他有一项工作就是每天早上天亮时一盏一盏地关掉这些路灯.为了给村里节 ...

  4. 洛谷P2507 [SCOI2008]配对 题解(dp+贪心)

    洛谷P2507 [SCOI2008]配对 题解(dp+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1299251 链接题目地址:洛谷P2507 [S ...

  5. 洛谷P4322 最佳团伙(树上dp)

    题目描述 洛谷传送门 题目描述 JSOI 信息学代表队一共有 N 名候选人,这些候选人从 1 到 N 编号.方便起见,JYY 的编号是 0 号.每个候选人都由一位编号比他小的候选人Ri推荐.如果 Ri ...

  6. 洛谷P1006 传纸条 (棋盘dp)

    好气,在洛谷上交就过了,在caioj上交就只有40分 之前在51nod做过这道题了. https://blog.csdn.net/qq_34416123/article/details/8180902 ...

  7. Palindrome subsequence HDU - 4632 区间dp|记忆化搜索

    // 区间dp import java.util.Scanner;/**** @author CN*/ public class main {static int mod = 10007;static ...

  8. 【题解】洛谷P4158 [SCOI2009] 粉刷匠(DP)

    次元传送门:洛谷P4158 思路 f[i][j][k][0/1]表示在坐标为(i,j)的格子 已经涂了k次 (0是此格子涂错 1是此格子涂对)涂对的格子数 显然的是 每次换行都要增加一次次数 那么当j ...

  9. [洛谷]P4158 [SCOI2009]粉刷匠 (#线性dp+背包dp)

    题目描述 windy有 N 条木板需要被粉刷. 每条木板被分为 M 个格子. 每个格子要被刷成红色或蓝色. windy每次粉刷,只能选择一条木板上一段连续的格子,然后涂上一种颜色. 每个格子最多只能被 ...

最新文章

  1. 为何BERT在 NLP 中的表现如此抢眼?
  2. 探访火车票“守护者”:一卷票据值百万 压力大到失眠
  3. 如何让智能客服成为企业的生产力工具?
  4. 音视频技术开发周刊 | 142
  5. cocos2dx3.2文件结构和代码结构
  6. 让DEM数据更有表现力
  7. L1-010 比较大小 (10 分)—团体程序设计天梯赛
  8. js constructor 和 instanceof
  9. C# dapper 使用事务
  10. 网页百度云盘服务器有点忙,百度网盘使用提示网络异常,建议使用三种解决方法...
  11. 【测试工具】Selenium 自动化浏览器(Python 篇)
  12. 软件测试VS软件开发哪个好?怎么选择
  13. RK px30 配置ap6212 wifi bt流程记录
  14. win10--ubuntu 16.04桌面共享
  15. 2021-12-11 根据单词首字母查找单词
  16. 图片识别,人脸识别,植物识别,花卉识别,签到小程序,借助百度AI智能识别功能实现图片识别,人脸识别小程序
  17. 板邓:php+mayql分页原理及案例
  18. 谁是元宇宙的基础设施?数据中心助推元宇宙发展
  19. 博士申请 | 美国埃默里大学招收2022秋季入学机器学习方向全奖博士生
  20. 明源售楼系统技术解析(一)搭建MVC3框架

热门文章

  1. 从概念到案例:初学者须知的十大机器学习算法
  2. jsp iframe嵌入php,jsp嵌套iframe从iframe中表单提交并传值到外层_html/css_WEB-ITnose
  3. mac mysql php_Mac搭建php开发环境:Apache+php+MySql
  4. 怎样让电脑速度变快_硬盘在电脑中起什么作用?
  5. android主动显示流程,Activity加载显示基本流程
  6. ppt扇形图怎么显示数据_前方高能!多维数据分析的神器雷达图PPT制作教程来啦!...
  7. php云点播源码,乐视云直播 点播服务端api
  8. java分桃子_猴子分桃子.java
  9. usb接口定义引脚说明_PerfDogService使用说明
  10. 7-34 任务调度的合理性 (25 分)(思路加详解+兄弟们冲呀)