POJ 2757 最长上升子序列 解题报告
2009-02-08 22:24
281 查看
POJ 2757 最长上升子序列 解题报告
编号:2757
考查点:动态规划
思路:求最优的问题首先要想到用动态规划,想到用动态规划要想到如何找状态转移,这道题肯定是DP,状态转移我倒是想了半天,好不容易搞定了递归+状态量部分,结果忘了从状态量里找到最大的输出了,幸亏及时发现.。
提交情况: 程序递归部分改了N次,后来提交因为没有从状态量里找最大的输出WA了一次,其它都还好.用DP时间和空间效果都还不错.。
Source Code:
//POJ Grids 2757
#include <iostream>
using namespace std;
int num[1024];
int len[1024];
int Search(int i)
{
if (i==1)
return len[1];
else
{
int max = 0;
for (int j=1;j<i;j++)
{
if (!len[j])
len[j] = Search(j);
if (len[j]>max&&num[i]>num[j])
max = len[j];
}
len[i] = max+1;
}
return len[i];
}
int main()
{
int n;
cin>>n;
for (int i=1;i<=n;i++)
{
cin>>num[i];
}
memset(len,0,sizeof len);
len[1] = 1;
Search(n);
int max = 0;
for (int i=1;i<=n;i++)
{
if (len[i]>max)
max = len[i];
}
cout<<max<<endl;
return 0;
}
总结:DP果真很难,我目前还不能一眼就看出状态转移关系,更不用说其它的了,路漫漫..努力!
By Ns517
Time 09.02.08
编号:2757
考查点:动态规划
思路:求最优的问题首先要想到用动态规划,想到用动态规划要想到如何找状态转移,这道题肯定是DP,状态转移我倒是想了半天,好不容易搞定了递归+状态量部分,结果忘了从状态量里找到最大的输出了,幸亏及时发现.。
提交情况: 程序递归部分改了N次,后来提交因为没有从状态量里找最大的输出WA了一次,其它都还好.用DP时间和空间效果都还不错.。
Source Code:
//POJ Grids 2757
#include <iostream>
using namespace std;
int num[1024];
int len[1024];
int Search(int i)
{
if (i==1)
return len[1];
else
{
int max = 0;
for (int j=1;j<i;j++)
{
if (!len[j])
len[j] = Search(j);
if (len[j]>max&&num[i]>num[j])
max = len[j];
}
len[i] = max+1;
}
return len[i];
}
int main()
{
int n;
cin>>n;
for (int i=1;i<=n;i++)
{
cin>>num[i];
}
memset(len,0,sizeof len);
len[1] = 1;
Search(n);
int max = 0;
for (int i=1;i<=n;i++)
{
if (len[i]>max)
max = len[i];
}
cout<<max<<endl;
return 0;
}
总结:DP果真很难,我目前还不能一眼就看出状态转移关系,更不用说其它的了,路漫漫..努力!
By Ns517
Time 09.02.08
相关文章推荐
- LuoguP2757 导弹的召唤 解题报告【最长上升子序列+最长不上升子序列】
- BZOJ 3173 [Tjoi2013] 最长上升子序列 解题报告
- poj-2757-最长上升子序列-C语言-动态规划入门
- POJ 1631 Bridging signals 解题报告(附详细分析)最长上升子序列的dp+二分
- 2018.1.30【 POJ - 1458 】解题报告(dp,最长相同子序列)
- 最长上升子序列(LIS)POJ 1631 Bridging Signals
- POJ 2533 Longest Ordered Subsequence (最长上升子序列 DP优化)
- POJ 2533 最长上升子序列长度的求解 DP实现
- POJ - 2533 Longest Ordered Subsequence解题报告(最长上升子序列)
- OpenJudge 2757 最长上升子序列 / Poj 2533 Longest Ordered Subsequence
- poj 2533 poj3903 poj1836 最长上升子序列 LIS
- POJ 1631 Bridging signals(最长上升子序列 n*logn && POJ 3903)
- poj 3903 Stock Exchange(最长上升子序列,模版题)
- poj2533DP最长上升序列
- 百练 2757 最长上升子序列 线性dp
- POJ 1836 Alignment 最长上升(下降)子序列(dp)
- POJ 2533 求最长上升子序列长度 非DP 实现
- poj 1836 Alignment( 最长上升(下降)子序列 )
- POJ 2806 公共子序列 解题报告
- pku 2533 最长递增子序列 Longest Ordered Subsequence 解题报告