【51NOD-0】1134 最长递增子序列
2024-08-28 15:06:40
【算法】动态规划
【题解】经典模型:最长上升子序列(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 ;
}
最新文章
- ERROR ITMS-90167: ";No .app bundles found in the package";错误
- [BZOJ1112][POI2008]砖块Klo
- 你好,欢迎来到我的博客,我是博主royalmice
- 【codevs 1565】【SDOI 2011】计算器 快速幂+拓展欧几里得+BSGS算法
- 之前总结的今天给大分享一下iOS
- Parallel.js初探续集
- Java 日期往后推迟n天
- Linux之文件系统的简单操作
- epoll讲解
- Jquery Mobile下设置radio控件选中
- Codeforces Round #276 (Div. 2) 解题报告
- Webx3学习笔记(2)——基本流程
- datagrid参数queryParams--easyUI
- 逻辑运算&;数据
- iOS isa指针
- .NET Core Community 首个千星项目诞生:CAP
- 分享一个.NET平台开源免费跨平台的大数据分析框架.NET for Apache Spark
- Python:SQLMap源码精读—基于时间的盲注(time-based blind)
- Go-常见的面试题(一)
- 百度地图支持https