【算法】动态规划

【题解】经典模型:最长上升子序列(n log n)

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn=;
int a[maxn],b[maxn],f[maxn],n,m;
int find(int x)
{
int l=,r=m+;//m+1是永远不可能被直接比较的,但是必须有
while(l<r)
{
int mid=(l+r)>>;
if(b[mid]<x)l=mid+;
else r=mid;
}
return l;
}
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)scanf("%d",&a[i]);
int p;m=;
int ans=;
for(int i=;i<=n;i++)
{
p=find(a[i]);
f[i]=p;
if(p==m+)m++,b[m]=a[i];else
if(a[i]<b[p])b[p]=a[i];
ans=max(ans,f[i]);
}
printf("%d",ans);
return ;
}

最新文章

  1. ERROR ITMS-90167: &quot;No .app bundles found in the package&quot;错误
  2. [BZOJ1112][POI2008]砖块Klo
  3. 你好,欢迎来到我的博客,我是博主royalmice
  4. 【codevs 1565】【SDOI 2011】计算器 快速幂+拓展欧几里得+BSGS算法
  5. 之前总结的今天给大分享一下iOS
  6. Parallel.js初探续集
  7. Java 日期往后推迟n天
  8. Linux之文件系统的简单操作
  9. epoll讲解
  10. Jquery Mobile下设置radio控件选中
  11. Codeforces Round #276 (Div. 2) 解题报告
  12. Webx3学习笔记(2)——基本流程
  13. datagrid参数queryParams--easyUI
  14. 逻辑运算&amp;数据
  15. iOS isa指针
  16. .NET Core Community 首个千星项目诞生:CAP
  17. 分享一个.NET平台开源免费跨平台的大数据分析框架.NET for Apache Spark
  18. Python:SQLMap源码精读—基于时间的盲注(time-based blind)
  19. Go-常见的面试题(一)
  20. 百度地图支持https

热门文章

  1. 从零讲JAVA ,给你一条 清晰地学习道路!该学什么就学什么!!
  2. PokeCats开发者日志(十)
  3. 织梦dede:list标签在列表页同一文章显示两次的解决方法
  4. 为什么 MongoDB (索引)使用B-树而 Mysql 使用 B+树
  5. wpf拖拽
  6. 【bzoj3631】[JLOI2014]松鼠的新家 LCA+差分数组
  7. python字典的常用操作
  8. [SOJ #47]集合并卷积
  9. ubuntu安装记录——安装作业部落cmd markdown
  10. 去掉vue 中的代码规范检测(Eslint验证)