求最长递减子序列
2013-11-07 21:52
211 查看
#include <iostream>
#include <algorithm>
#include <fstream>
using namespace std;
int main()
{
ifstream cin("input.txt");
int n;
int a[100],dp[100],max=0,index;
cin>>n;
for (int i = 0 ; i < n ; i++)
{
cin>>a[i];
}
for (int i = 0 ; i < n ; i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
for (int i = n-1 ; i >=0 ; i--)
{
dp[i] = 1;
for (int j = i + 1 ; j < n ;j++)
{
if (a[j] < a[i])
{
if(dp[i] < dp[j] + 1)
dp[i] = dp[j] + 1;
}
}
if (max < dp[i])
{
max = dp[i];
index = i;
}
}
cout<<max<<endl;
cout<<index<<endl;
}
#include <algorithm>
#include <fstream>
using namespace std;
int main()
{
ifstream cin("input.txt");
int n;
int a[100],dp[100],max=0,index;
cin>>n;
for (int i = 0 ; i < n ; i++)
{
cin>>a[i];
}
for (int i = 0 ; i < n ; i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
for (int i = n-1 ; i >=0 ; i--)
{
dp[i] = 1;
for (int j = i + 1 ; j < n ;j++)
{
if (a[j] < a[i])
{
if(dp[i] < dp[j] + 1)
dp[i] = dp[j] + 1;
}
}
if (max < dp[i])
{
max = dp[i];
index = i;
}
}
cout<<max<<endl;
cout<<index<<endl;
}
相关文章推荐
- uva 437(最长递减子序列)
- CODE(VS) 1044 导弹拦截 (判断最长递增和最长递减子序列)
- 最长递增/递减子序列
- NYOJ题目79-拦截导弹(最长递减子序列)
- 最长递减子序列
- poj1952 BUY LOW, BUY LOWER(最长递减子序列及个数)
- 计蒜客 2017icpc南宁赛区 The Heaviest Non-decreasing Subsequence Problem 最长不递减子序列
- HDU 1160 FatMouse's Speed (动规+最长递减子序列)
- Testing the CATCHER Uva231 最长递减子序列
- 最长递减子序列
- BUY LOW, BUY LOWER----POJ_1952----最长递减子序列
- 计蒜客——求数组最长递减子序列
- 最长递增子序列(两种时间复杂度算法及其区别)+最长递减子序列(reverse)
- UVa 10285 Longest Run on a Snowboard(DP 二维最长递减子序列)
- POJ 1552 BUY LOW, BUY LOWER(最长单调递减子序列求方案数)
- 微软100题(47)最长递减子序列
- Uva 10131 Is Bigger Smarter 最长递减子序列
- HDU 1069(最长递减子序列&&长方体处理技巧)
- 挑战练习题2.3动态规划 poj1065 Wooden Sticks 最长递减子序列
- poj 1952 最长递减子序列+求个数