您的位置:首页 > 其它

求最长递减子序列

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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: