poj 2533 Longest Ordered Subsequence(最长上升子序列)
http://poj.org/problem?id=2533
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int num[1000+100]; int dp[1000+100]; int main() { int n; int i,j; while(scanf("%d",&n)!=EOF) { for(i=0;i<n;i++) { scanf("%d",&num[i]); dp[i]=1; } int maxx=1; //小细节 这里maxx需要初始化为 1 如果 为 0 当n=1时 输出为 0 for(i=n-2;i>=0;i--) { //int tmax=0; for(j=i+1;j<n;j++) { if(num[j]>num[i]&&dp[j]+1>dp[i]) dp[i]=dp[j]+1; } if(dp[i]>maxx) maxx=dp[i]; } printf("%d\n",maxx); } return 0; }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步