hdu 1087 Super Jumping! Jumping! Jumping!
这道题跟最长上升子序列查不多,只不过需要记录的信息不一样
关于最长上升子序列见:最长上升子序列nlogn算法
1 #include<stdio.h>
2 #include<string.h>
3 int a[1001];
4 int b[1001];
5 int main()
6 {
7 int n,i,j;
8 int max;
9 while(scanf("%d",&n),n)
10 {
11 memset(b,0,sizeof(b));
12 memset(a,0,sizeof(a));
13 for(i=0;i<n;i++)
14 scanf("%d",&a[i]);
15 for(i=0;i<n-1;i++)
16 {
17 for(j=i+1;j<n;j++)
18 {
19 if(a[j]>a[i]&&b[j]<a[i]+b[i])
20 {
21 b[j] = a[i]+b[i];
22 }
23 }
24 }
25 max = 0;
26 for(i=0;i<n;i++)
27 if(max<b[i]+a[i])
28 max = b[i]+a[i];
29 printf("%d\n",max);
30 }
31 return 0;
32 }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】博客园携手 AI 驱动开发工具商 Chat2DB 推出联合终身会员
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步