POJ 2533 Longest Ordered Subsequence (LIS DP)
最长公共自序列LIS
三种模板,但是邝斌写的好像这题过不了
N*N
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int N = ;
int a[],dp[],n;
int Lis(){
dp[]=;
int ans=;
int temp=;
for(int i=;i<=n;i++){
temp=;
for(int j=;j<i;j++){
if(dp[j]>temp&&a[i]>a[j]){
temp=dp[j];
}
}
dp[i]=temp+;
if(dp[i]>ans){
ans=dp[i];
}
}
return ans;
}
int main(){
while(~scanf("%d",&n)){
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
}
printf("%d\n",Lis());
}
return ;
}
N*logn
#include <stdio.h>
#include <algorithm>
#include <string.h>
using namespace std; int a[],dp[],c[],n; int bin(int sizee,int k)
{
int l = ,r = sizee;
while(l<=r)
{
int mid = (l+r)/;
if(k>c[mid] && k<=c[mid+])
return mid+;
else if(k<c[mid])
r = mid-;
else
l = mid+;
}
} int LIS()
{
int i,j,ans=;
c[] = a[];
dp[] = ;
for(i = ; i<=n; i++)
{
if(a[i]<=c[])
j = ;
else if(a[i]>c[ans])
j = ++ans;
else
j = bin(ans,a[i]);
c[j] = a[i];
dp[i] = j;
}
return ans;
} int main()
{
int i;
while(~scanf("%d",&n))
{
for(i = ; i<=n; i++)
scanf("%d",&a[i]);
printf("%d\n",LIS()); }
return ;
}
没有AC
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#define clc(a,b) memset(a,b,sizeof(a))
#define LL long long
#include<cmath>
const int inf=0x3f3f3f3f;
using namespace std;
const int MAXN=;
int a[MAXN],b[MAXN];
int Serch(int num,int low,int high) {
int mid;
while(low<=high) {
mid=(low+high)/;
if(num>=b[mid])
low=mid+;
else high=mid-;
}
return low;
}
int Dp(int n) {
int i,len,pos;
b[]=a[];
len=;
for(i=; i<=n; i++) {
if(a[i]>=b[len]) {
len=len+;
b[len]=a[i];
} else {
pos=Serch(a[i],,len);
b[pos]=a[i];
}
}
return len;
} int main() {
int n;
while(~scanf("%d",&n)) {
for(int i=; i<=n; i++)
scanf("%d",&a[i]);
printf("%d\n",Dp(n));
}
}
POJ 2533 Longest Ordered Subsequence (LIS DP)的更多相关文章
- poj 2533 Longest Ordered Subsequence(线性dp)
题目链接:http://poj.org/problem?id=2533 思路分析:该问题为经典的最长递增子序列问题,使用动态规划就可以解决: 1)状态定义:假设序列为A[0, 1, .., n],则定 ...
- POJ 2533 Longest Ordered Subsequence(LIS模版题)
Longest Ordered Subsequence Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 47465 Acc ...
- Poj 2533 Longest Ordered Subsequence(LIS)
一.Description A numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let the subsequenc ...
- POJ 2533 Longest Ordered Subsequence(裸LIS)
传送门: http://poj.org/problem?id=2533 Longest Ordered Subsequence Time Limit: 2000MS Memory Limit: 6 ...
- POJ 2533 Longest Ordered Subsequence(dp LIS)
Language: Default Longest Ordered Subsequence Time Limit: 2000MS Memory Limit: 65536K Total Submis ...
- 题解报告:poj 2533 Longest Ordered Subsequence(最长上升子序列LIS)
Description A numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let the subsequence ...
- POJ 2533 Longest Ordered Subsequence(DP 最长上升子序列)
Longest Ordered Subsequence Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 38980 Acc ...
- POJ 2533 Longest Ordered Subsequence(最长上升子序列(NlogN)
传送门 Description A numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let the subseque ...
- POJ 2533——Longest Ordered Subsequence(DP)
链接:http://poj.org/problem?id=2533 题解 #include<iostream> using namespace std; ]; //存放数列 ]; //b[ ...
随机推荐
- python模块之os和os.path模块
1.os模块os.listdir(dirname) 列出dirname下的目录和文件os.getcwd()函数得到当前工作目录,即当前Python脚本工作的目录路径.os.getenv()和os.pu ...
- C#细节忽略的问题:int 与 int?
int 与 int? 天天都在看,却不知道这2有什么区别呢? 首先说明下这个?的由来吧:C#值类型使不可谓null的,但是sql server的 int 确是可以为null的. 废话不多说直接上代码 ...
- 对WPF中MeasureOverride 和ArrangeOverride 浅理解
以前对MeasureOverride 和ArrangeOverride十分费解,看到了这篇博文茅塞顿开~ public class CustomControl1 : Panel { /// <s ...
- stm32类型cl、vl、xl、ld、md、hd的含义
- startup_stm32f10x_ld_vl.s: for STM32 Low density Value line devices - startup_stm32f10x_ld.s: for ...
- python 常用模块(转载)
转载地址:http://codeweblog.com/python-%e5%b8%b8%e7%94%a8%e6%a8%a1%e5%9d%97/ adodb:我们领导推荐的数据库连接组件bsddb3:B ...
- Python属性、方法和类管理系列之----元类
元类的介绍 请看位于下面网址的一篇文章,写的相当好. http://blog.jobbole.com/21351/ 实例补充 class Meta(type): def __new__(meta, c ...
- Hansight
http://www.hansight.com/scenarios.html#account
- java 对象 类 知识点 概览
第30集 面向对象,核心是对象,以对象来思考
- [状压dp]经典TSP
0出发 每个顶点经过一次 回到0 最小花费. O($n^2 \times 2^n$) 记忆化搜索: // s: 已经访问过的节点状态 v: 出发位置 int dfs(int s, int v) { ) ...
- RxJava开发精要1-从.NET到RxJava
原文出自<RxJava Essentials> 原文作者 : Ivan Morgillo 译文出自 : 开发技术前线 www.devtf.cn 转载声明: 本译文已授权开发者头条享有独家转 ...