动规(LIS)-POJ-2533
http://poj.org/problem?id=2533
Longest Ordered Subsequence
给定n个正整数,求最长上升子序列(LIS)长度(子序列中的元素不要求连续).
解题报告
思路
经典的LIS问题,O(n^2)的朴素做法不多作介绍,仅仅介绍O(n logn)的做法。
对于n个元素的数组array,建立一个数组d[n]。
其中d[i]表示长度为i的子序列中最小的末尾元素为d[i]。
数组d显然是升序的,可用反证法证明:
假设存在d[i]>=d[j]且i<j。
那么由于i<j,那么在d[j]结尾的子序列中,必然存在某个值array[k]<d[j]<=d[i],使得以array[k]结尾的LIS长度为i,因而与假设矛盾。
根据d数组的升序性质,可以循环遍历array数组:
对于遍历到的array[i],在d数组中二分查找最后一个小于array[i]的元素d[k],那么以array[i]结尾的LIS的长度则为k+1。同时更新d数组。
那么时间复杂度就为O(n logn)
代码
#include <algorithm> #include <cstring> #include <iostream>using namespace std;const int maxn = 1003; const int INF = 0x3f3f3f3f;int minNum[maxn]; int n;int main() {ios::sync_with_stdio(false);cin.tie(0);while (cin >> n) {memset(minNum, INF, sizeof(minNum));minNum[0] = -1;int num, len, ans = 1;for (int i = 0; i < n; i++) {cin >> num;len = lower_bound(minNum, minNum + n, num) - minNum;if(minNum[len] == num) len--;minNum[len] = min(minNum[len], num);ans = max(ans, len);}cout << ans << endl;}return 0; }
--(完)--
转载于:https://www.cnblogs.com/Bcai0797/p/6985375.html
动规(LIS)-POJ-2533相关推荐
- 关于数位动规(入门到进阶,难度中档)
数位动规,就是对于数位进行动规(日常一句废话···) 刚好今天听数位dp,就总结一下最近写的题吧.郭神说要学懂数位dp,还是要搞懂它内部是怎么工作的.比如一个有大小的数,我们在这里剥夺它作为一个整数的 ...
- CF2B The least round way(贪心+动规)
题目 CF2B The least round way 做法 后面\(0\)的个数,\(2\)和\(5\)是\(10\)分解质因数 则把方格中的每个数分解成\(2\)和\(5\),对\(2\)和\(5 ...
- 树形动规_(技能树)
技能树(SGOI) skill.pas/c/cpp [问题描述] 玩过 Diablo 的人对技能树一定是很熟悉的.一颗技能树的每个结点都是一项技能,要学会这项技能则需 要耗费一定的技能点数.只有在学会 ...
- 正则表达式匹配(动规)
文章目录 题目 思路 转移方程 特征 再探 i 和 j 代码 题目 请实现一个函数用来匹配包含 . 和 * 的正则表达式.模式中的字符 . 表示任意一个字符,而 * 表示它前面的字符可以出现任意次(含 ...
- 洛谷 P1073 最优贸易 (分层图状态转移+SPFA,求最长路径;另附某dalao的超短代码:暴力+动规)
题目链接1 题目链接2 另附某dalao的超短代码:暴力+动规 P1073 最优贸易 题目描述 C国有 n 个大城市和 m 条道路,每条道路连接这 n 个城市中的某两个城市. 任意两个城市之间最多只有 ...
- leetcode 121. 买卖股票的最佳时机 (贪心 + 动规 + 双指针
贪心的思路: 得到最小值,再挨个用数组中的值减去最小值,最终值取一个最大的 class Solution { public:int maxProfit(vector<int>& p ...
- 导弹拦截(动规,贪心)
题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某天,雷达捕捉到敌国的导弹 ...
- BTTCOJ 问题 G: 逃离地牢 树形动规
题目描述 小明明又被大威鱼抓住了,大威鱼把小明明关在地牢里,地牢由n * n 个房间组成,小明被困在地牢的最左上角的房间中,出口在最右下角,他想逃出这个诡异的地牢,但是他只能向下或者向右走. 小明每经 ...
- bzoj3875 【Ahoi2014】骑士游戏 spfa处理后效性动规
骑士游戏 [故事背景] 长期的宅男生活中,JYY又挖掘出了一款RPG游戏.在这个游戏中JYY会 扮演一个英勇的骑士,用他手中的长剑去杀死入侵村庄的怪兽. [问题描述] 在这个游戏中,JYY一共有两种攻 ...
最新文章
- 汉川一中2021高考成绩查询,2021年汉川市高考状元名单资料,今年汉川市高考状元多少分...
- 相机上的AE AF AWB AEB都表示的是什么?
- linux6下kdump的配置
- 数字开头的正则表达式_初学Web前端要注意什么 正则表达式是怎么回事
- 【蓝桥杯】Python自带编辑器IDLE的使用教程
- 通过图注意力神经网络进行多智能体游戏抽象_[读论文] AttnPath: 将图注意力机制融入基于深度强化学习的知识图谱推理中...
- Mike Krueger 加入Mono团队
- JavaScript知识点之:delete操作符
- shell自动交互之expect脚本_转
- PTA 11-散列4 Hard Version (30分)
- android nv21 nv12,直接进行nv21或者nv12的resize
- 博弈论个人的一点小总结
- ognl以及令牌以及开头的一点方法
- 输入法突然变成繁体字的解决方法
- 使用tree生成目录树结构
- 大学计算机实验报告答案 南京理工大学,南京理工大学微机实验报告.doc
- 区块链研究实验室|比较两个革命性的网络:闪电网络和互联网世界
- 计算机主机接电视机,电脑连接电视,详细教您电脑连接电视当显示器的方法
- No enclosing instance of type X is accessible. Must qualify the allocation with an enclosing instanc
- 红魔6S Pro:6项重大升级铸就年度游戏旗舰