您的位置:首页 > 其它

hdu1087 动态规划入门LIS

2017-07-06 20:40 309 查看
#include <bits/stdc++.h>
using namespace std;
const int AX = 2e3+666;
int mp[AX];
int dp[AX];
int main(){
int n;
while(scanf("%d",&n) && n){
memset(dp,0,sizeof(dp));
for(int i=0;i<n;i++){
cin>>mp[i];
}
int ans = 0;
for(int i=0;i<n;i++){
dp[i] = mp[i];
for(int j=0;j<i;j++){
if(mp[j]<mp[i])
dp[i] = max(dp[i],dp[j]+mp[i]);
}
ans = max(ans,dp[i]);
}
cout<<ans<<endl;
/*for(int i=n-1;i>0;i--){
for(int j=0;j<i;j++){
mp[i-1][j] += max(mp[i][j],mp[i][j+1]);
}
}
int max  = 1e-7;
cout<<mp[0][0]<<endl;
}*/
/*	for(int i=0;i<n;i++){
cout<<dp[i]<<endl;
}*/
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: