这题我用sort的时候大意了,从1开始使用的下标但是用sort时没加1导致排序错误,排了半天错才发现。

另外,这道题我似乎用了一种与网络上搜到了做法截然不同的自己的瞎想出来的做法,我的这个做法需要n^2级别的空间复杂度,但好在这道题数据刚刚好允许我开二维数组于是便AC了。

随后开始看时间复杂度是n^2空间复杂度是n的正解,理解了,但感觉很奇怪,主要就是不知道这个思路应该怎么凭空想出来。至于nlogn的优化算法则是压根第一时间就没看明白。

不过好在这道题由于我用了自创的奇怪解法,导致我需要离散化,而写离散化的过程中感觉自己对离散化的掌握更熟练了

写完后我又不死心的想尝试改成记搜之后能否提速,结果是几乎没差别,甚至记搜还比原算法慢1%左右...

Code

#include <iostream>
#include <cstring>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <stack>
#include <queue>
#include <map>
#include <unordered_map>
#include <cmath>
using namespace std; int n,a[5000+5],b[5000+5],m[1000000+5],dp[5000+5][5000+5];
signed main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
b[i]=a[i];
}
sort(b+1,b+1+n);
for(int i=1,p=1;i<=n;i++)
{
m[b[i]]=p;
if(b[i+1]!=b[i])p++;
} for(int i=1;i<=n;i++)
{
for(int j=1;j<=n+1;j++)
{
if(m[a[i]]<j)dp[i][j]=max(1+dp[i-1][m[a[i]]],dp[i-1][j]);
else dp[i][j]=dp[i-1][j];
}
}
cout<<dp[n][n+1]<<endl;
return 0;
}

dfs-Code

#include <iostream>
#include <cstring>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <stack>
#include <queue>
#include <map>
#include <unordered_map>
#include <cmath>
using namespace std; int n,a[5000+5],b[5000+5],m[1000000+5],dp[5000+5][5000+5];
int dfs(int i,int j)
{
if(i<1||j<1)return 0;
if(dp[i][j]!=0)return dp[i][j];
if(m[a[i]]<j)return dp[i][j]=max(1+dfs(i-1,m[a[i]]),dfs(i-1,j));
else return dp[i][j]=dfs(i-1,j);
}
signed main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
b[i]=a[i];
}
sort(b+1,b+1+n);
for(int i=1,p=1;i<=n;i++)
{
m[b[i]]=p;
if(b[i+1]!=b[i])p++;
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n+1;j++)
{
if(m[a[i]]<j)dp[i][j]=max(1+dp[i-1][m[a[i]]],dp[i-1][j]);
else dp[i][j]=dp[i-1][j];
}
}
cout<<dfs(n,n+1)<<endl;
return 0;
}

B3637-DP【橙】的更多相关文章

  1. 清橙A1212:剪枝

    题面 清橙 Sol 一种新的树上\(DP\)姿势 从左往右按链\(DP\) 做法: 维护两个栈\(S1\),\(S2\) \(S1\)存当前的链 \(S2\)存分叉点以下要改的链 \(Dfs\),弄一 ...

  2. DP题目推荐合集(洛谷/UVa)

    今天下午要参加海淀区的比赛了...这几天临时抱佛脚刷了几道DP,正所谓临阵磨枪,不快也光...下面我 就把最近刷到的,自己觉得不错的动态规划题列出来: 1.P2690 接苹果 :(基础二维DP) 2. ...

  3. DP及其优化

    常见DP模型及其构造 序列DP ARC074 RGB Sequence 题意 给你一个长度为 \(n\) 的序列和 \(m\) 组约束条件,每组条件形如 \(l_i,r_i,x_i\),表示序列上的 ...

  4. 从《彩色圆环》一题探讨一类环上dp的解法

    清橙A1202 bzoj2201 bsoj4074 试题来源 2010中国国家集训队命题答辩 问题描述 小A喜欢收集宝物.一天他得到了一个圆环,圆环上有N颗彩色宝石,闪闪发光.小A很爱惜这个圆环,天天 ...

  5. 模拟赛 提米树 题解 (DP+思维)

    题意: 有一棵棵提米树,满足这样的性质: 每个点上长了一定数量的Temmie 薄片,薄片数量记为这个点的权值,这些点被标记为 1 到 n 的整数,其 中 1 号点是树的根,没有孩子的点是树上的叶子. ...

  6. 【DP】斜率优化初步

    向y总学习了斜率优化,写下这篇blog加深一下理解. 模板题:https://www.acwing.com/problem/content/303/ 分析 因为本篇的重点在于斜率优化,故在此给出状态转 ...

  7. Codeforces 891D - Sloth(换根 dp)

    Codeforces 题面传送门 & 洛谷题面传送门 换根 dp 好题. 为啥没人做/yiw 首先 \(n\) 为奇数时答案显然为 \(0\),证明显然.接下来我们着重探讨 \(n\) 是偶数 ...

  8. BZOJ 1911: [Apio2010]特别行动队 [斜率优化DP]

    1911: [Apio2010]特别行动队 Time Limit: 4 Sec  Memory Limit: 64 MBSubmit: 4142  Solved: 1964[Submit][Statu ...

  9. 2013 Asia Changsha Regional Contest---Josephina and RPG(DP)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=4800 Problem Description A role-playing game (RPG and ...

  10. AEAI DP V3.7.0 发布,开源综合应用开发平台

    1  升级说明 AEAI DP 3.7版本是AEAI DP一个里程碑版本,基于JDK1.7开发,在本版本中新增支持Rest服务开发机制(默认支持WebService服务开发机制),且支持WS服务.RS ...

随机推荐

  1. mysql的begin end嵌套

    这个教程基本很少,因为这个很简单,但又会让(新手)人难以完成这嵌套. 为了方便读者理解,我把不需要嵌套的也嵌套起来了.(就比如下面这几行代码) delimiter $$ drop procedure ...

  2. [洛谷P8494] [IOI2022] 最罕见的昆虫

    [IOI2022] 最罕见的昆虫 题目描述 Pak Blangkon 的房子四周有 \(N\) 只昆虫,编号为 \(0\) 至 \(N-1\).每只昆虫有一个类型,以从 \(0\) 至 \(10^9\ ...

  3. 为什么许多数字孪生产品开始了GIS融合的尝试?

    随着数字孪生技术的发展,越来越多的产品意识到要实现数字孪生的最大价值,需要考虑多个维度的数据,包括空间信息.地理位置.环境条件等.因此,许多数字孪生产品开始了与GIS系统的融合尝试,以进一步提升其功能 ...

  4. VsCode如何配置C语言环境?

    以前学校上C语言课程都是使用VC++6.0上课,这个学期为了复习一遍C语言,而且自己经常使用VSCode开发前端项目,所以为了方便.这里把需要的环境和插件配置在这里介绍一下. Windows环境下安装 ...

  5. 2021-01-26:mysql8.0做了什么改进?

    福哥答案2021-01-26: 2020-01-26:mysql8.0做了什么改进? 帐户管理增加了对角色的支持. 支持原子数据定义语句(atomic DDL). 支持utf8mb4字符集. Inno ...

  6. C语言编程需要掌握的核心要点有哪些? 编程大神为你总结了这20个

    摘要:C语言作为编程的入门语言,学习者如何快速掌握其核心知识点,面对茫茫书海,似乎有点迷茫.为了让各位快速地掌握C语言的知识内容,在这里对相关的知识点进行了归纳. 引言 笔者有十余年的C++开发经验, ...

  7. 大模型高效开发的秘密武器:大模型低参微调套件MindSpore PET

    摘要:本文介绍大模型低参微调套件--MindSpore PET. 本文分享自华为云社区<大模型高效开发的秘密武器--大模型低参微调套件MindSpore PET篇>,作者:yd_28087 ...

  8. 5步教你将MRS数据导入DWS

    摘要:GaussDB(DWS)支持在相同网络中,配置一个GaussDB(DWS)集群连接到一个MRS集群,然后将数据从HDFS中的文件读取到GaussDB(DWS). MapReduce服务(MapR ...

  9. 云图说|初识云数据库GaussDB(for Cassandra)

    摘要:不用再为数据不一致苦恼,因为强一致的Cassandra来了,DBA们不用加班修数据了.GaussDB(for Cassandra)是一款基于华为自主研发的计算存储分离架构的分布式云数据库服务,是 ...

  10. ImproperlyConfigured('SQLite 3.8.3 or later is required Centos升级SQLite

    遇到这个错误可以选择给django降级,不建议 这里选择升级SQLite 1.查看版本 sqlite3 --version 2.Centos7安装最新的sqlite3 wget https://www ...