B3637-DP【橙】
这题我用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【橙】的更多相关文章
- 清橙A1212:剪枝
题面 清橙 Sol 一种新的树上\(DP\)姿势 从左往右按链\(DP\) 做法: 维护两个栈\(S1\),\(S2\) \(S1\)存当前的链 \(S2\)存分叉点以下要改的链 \(Dfs\),弄一 ...
- DP题目推荐合集(洛谷/UVa)
今天下午要参加海淀区的比赛了...这几天临时抱佛脚刷了几道DP,正所谓临阵磨枪,不快也光...下面我 就把最近刷到的,自己觉得不错的动态规划题列出来: 1.P2690 接苹果 :(基础二维DP) 2. ...
- DP及其优化
常见DP模型及其构造 序列DP ARC074 RGB Sequence 题意 给你一个长度为 \(n\) 的序列和 \(m\) 组约束条件,每组条件形如 \(l_i,r_i,x_i\),表示序列上的 ...
- 从《彩色圆环》一题探讨一类环上dp的解法
清橙A1202 bzoj2201 bsoj4074 试题来源 2010中国国家集训队命题答辩 问题描述 小A喜欢收集宝物.一天他得到了一个圆环,圆环上有N颗彩色宝石,闪闪发光.小A很爱惜这个圆环,天天 ...
- 模拟赛 提米树 题解 (DP+思维)
题意: 有一棵棵提米树,满足这样的性质: 每个点上长了一定数量的Temmie 薄片,薄片数量记为这个点的权值,这些点被标记为 1 到 n 的整数,其 中 1 号点是树的根,没有孩子的点是树上的叶子. ...
- 【DP】斜率优化初步
向y总学习了斜率优化,写下这篇blog加深一下理解. 模板题:https://www.acwing.com/problem/content/303/ 分析 因为本篇的重点在于斜率优化,故在此给出状态转 ...
- Codeforces 891D - Sloth(换根 dp)
Codeforces 题面传送门 & 洛谷题面传送门 换根 dp 好题. 为啥没人做/yiw 首先 \(n\) 为奇数时答案显然为 \(0\),证明显然.接下来我们着重探讨 \(n\) 是偶数 ...
- BZOJ 1911: [Apio2010]特别行动队 [斜率优化DP]
1911: [Apio2010]特别行动队 Time Limit: 4 Sec Memory Limit: 64 MBSubmit: 4142 Solved: 1964[Submit][Statu ...
- 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 ...
- AEAI DP V3.7.0 发布,开源综合应用开发平台
1 升级说明 AEAI DP 3.7版本是AEAI DP一个里程碑版本,基于JDK1.7开发,在本版本中新增支持Rest服务开发机制(默认支持WebService服务开发机制),且支持WS服务.RS ...
随机推荐
- Linux下^m符号删除
Linux下^m符号删除 从Windows上复制的代码到Linux尾会有M字符,通过下命令可以删除. :%s/\r//
- Mybatis-Flex之基础查询
1.selectOneById /** * selectOneById(id):根据主键查询数据. */ @Test public void testSelectOneById() { /** * S ...
- CompletableFuture异步编程
1.创建 /** * public static <U> CompletableFuture<U> supplyAsync(Supplier<U> supplier ...
- C++ Qt开发:StringListModel字符串列表映射组件
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍QString ...
- 新手友好、轻量级的C#/.NET万能工具库
前言 今天分享一个基于MIT License协议开源.免费.新手友好.轻量级的C#/.NET万能工具库.帮助类库(支持.NET和.NET Core,可以帮助开发者们减少常见重复功能方法查找,提高开发工 ...
- MySQL 基础(四)锁
解决并发事务带来的问题 写-写情况 任意一种事务隔离级别都不允许 "脏写" 的发生,因为这样会使得数据混乱.所以,当多个未提交的事务相继对一条记录进行改动时,就需要使得这些事务串行 ...
- 你真的会用 npx 吗❓❓❓
Hello,大家好! 日常开发中大家应该经常使用 npm install xxx 来安装包依赖,那是否注意到npm升级到 npm@5.2.0 之后,在 npm 二进制命令旁边安装了一个 npx 二进制 ...
- Cesium案例解析(九)——Rotatable2DMap旋转2D地图
目录 Cesium的Rotatable 2D Map示例展示了一个旋转的二维地图: 'use strict'; var viewer = new Cesium.Viewer('cesiumContai ...
- 自签证书https
1.下载编译好的openssl. http://slproweb.com/products/Win32OpenSSL.html 下载完成后运行安装: 记住你安装到的目录,等下打开这个文件夹(小贴士:最 ...
- AIGC的阿克琉斯之踵
摘要:现在,越来越多的企业和个人使用AIGC生成文章.图片.音乐甚至视频等内容,AIGC已经成为一种必备的工具.在游戏和原画师行业,甚至已经出现了第一批因为AI而失业的人. 本文分享自华为云社区< ...