poj2533Longest_Ordered_Subsequence

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情


最长上升子序列。

怎么做呢?

不知道。

书上说用dp。

这样做的,

dp[i]:长度为i的递增子序列,末尾元素最小的值。

也就是说对于一个数列a,

可以得到如下状态转移方程:

dp[i]=a[j]>dp[i-1]?min(a[j],dp[i]):dp[i].

这样的话容易得到如下代码:

#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
	int inf,i,j,dp[1010],arr[1010],num;
	scanf("%d",&num);
	for(i=0;i<num;i++)
		scanf("%d",&arr[i]);
	memset(dp,127,sizeof(dp));
	inf=dp[0];
	for(i=0;i<num;i++)
		for(j=0;j<num;j++)
			if(j==0||dp[j-1]<arr[i])
				dp[j]=min(arr[i],dp[j]);
	for(i=num-1;dp[i]==inf;i--);
	cout<<i+1<<endl;
}


可以看出dp数组一定是个递增数列,

于是用二分查找优化下,

得到如下代码:

#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
	int inf,i,j,dp[1010],arr[1010],num;
	scanf("%d",&num);
	for(i=0;i<num;i++)
		scanf("%d",&arr[i]);
	memset(dp,127,sizeof(dp));
	inf=dp[0];
	for(i=0;i<num;i++)
		*lower_bound(dp,dp+num,arr[i])=arr[i];
	cout<<lower_bound(dp,dp+num,inf)-dp;
}

lower_bound会利用二分查找,在dp数组中找到一个大于或等于arr[i]
的最小指针。

poj-2533 Longest Ordered Subsequence 【最长上升子序列】 题目链接:http://poj.org/problem?id=2533 Longest Ordered Subsequence Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 35929   Accepted: 15778 Description A 阅读详情

相关推荐

ais信号接收设备_国内首款基于软件无线电技术的AIS基站投入测试使用

星网宇达子公司北京凯盾环宇科技有限公司经过多年的潜心研发,成功研制出国内首台基于软件无线电(SDR)的CATON 9011 AIS基站。该基站采用软件无线电技术,利用软件数字技术代替传统的模拟电路,大大的降低了模拟器件的使用率,提高了基站的可靠性和使用年限。CATON 9011 AIS基站研制依据ITU-R M.1371-5、IEC 62320-1、IEC 61162-1等国际标准,兼容...

weixin_29057163的博客 2310

poj2533

Longest Ordered Subsequence Time Limit:2000MS Memory Limit:65536K Total Submissions:18511 Accepted:7963 Description A numeric sequence ofaiis ordered ifa...

weixin_33763244的博客 304

Sigrity System SI SerialLink模式进行SFP+协议仿真分析-PCB操作指导

Random(Rj):随机抖动,该抖动用高斯概率分布来描述,通常是由热噪声和其它随机噪声引起的,默认为1%UI RMS(平均值),即和标准值的偏差为1%UI。Random(Rj):随机抖动,该抖动用高斯概率分布来描述,通常是由热噪声和其它随机噪声引起的,默认为1%UI RMS(平均值),即和标准值的偏差为1%UI。Random(Rj):随机噪声,是由信号电压的随机波动引起的,默认为1mv RMS(平均值),即和标准值的偏差为1mv。

weixin_54787054的博客 486

poj 2533

2015/2/12 最长上升子序列。 水过。 #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; #define mod 10007 #de

没有路通往的地方 526

POJ 2533: Longest Ordered Subsequence (最大上升子列)

题目来源:http://poj.org/problem?id=2533Longest Ordered SubsequenceTime Limit: 2000MS Memory Limit: 65536K DescriptionA numeric sequence of ai isordered if a1 &lt; a2 &lt;... &lt; aN. Let the subsequen...

da_kao_la的博客 365

poj 2533 Longest Ordered Subsequence

poj 2533 Longest Ordered Subsequence

YinJianxiang的博客 438

POJ 2533 Longest Ordered Subsequence

POJ 2533 Longest Ordered Subsequence Description A numeric sequence of ai is ordered if a1 < a2 < … < aN. Let the subsequence of the given numeric sequence (a1, a2, …, aN) be any sequence (ai...

旺崽的博客 3005

POJ 2533, Longest Ordered Subsequence

Time Limit: 2000MSMemory Limit: 65536KTotal Submissions: 12078Accepted: 5098 DescriptionA numeric sequence of ai is ordered if a1 < a2 < ... < aN. Let the subsequence of the given numeri...

weixin_33795093的博客 228

poj 2533 Longest Ordered Subsequence

Longest Ordered Subsequence Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 31423   Accepted: 13727 Description A numeric sequence of ai is ordered if a1 a2 a

逸疏 1014

POJ 2533 Longest Ordered Subsequence 解题报告

//考查点:动态规划(最长上升/不下降子序列 Longest Increasing Subsequence )。这题目是经典的DP题目,也可叫作LIS(Longest Increasing Subsequence)最长上升子序列 或者 最长不下降子序列 很基础的题目,有两种算法复杂度为O(n*logn)和O(n^2) 这题由于数据小,用后者O(n^2)即可  //思路: O(n^2)算

路雪军 Carl 2292

POJ2533:Longest Ordered Subsequence

Longest Ordered Subsequence Longest Ordered Subsequence Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 31680   Accepted: 13848 Description A nu

TOKHE的专栏 918

POJ 2533.Longest Ordered Subsequence

题目:http://poj.org/problem?id=2533 AC代码(C++): #include #include #include #include #include #include #include #include #include #define INF 0xfffffff #define MAXN 100105 using namespa

njyexiong的博客 265

POJ2533Longest Ordered Subsequence

Longest Ordered Subsequence Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 47040   Accepted: 20904 Description A numeric sequence of ai is ordered if a1 a2

better_space的博客 370

POJ2533-Longest Ordered Subsequence

全解题报告索引目录 -> 【北大ACM – POJ试题分类】 转载请注明出处:http://exp-blog.com ------------------------------------------------------------------------- 提示: 动态规划,求LIS最大不下降子序列 O(n^2)和O(n*logn)算法都能完美AC ...

ζёСяêτ - 小優YoU 4669
上一篇: 期望值Markov过程(马尔科夫过程),hdu1204糖果大战
下一篇: hdu1180诡异的楼梯……bfs走迷宫……wa了16次,我太渣了
Last0rder
博客等级 码龄18年 50粉丝 325原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值