HDU 1087 Super Jumping! Jumping! Jumping!

求递增子序列的最大和,没什么好说的。

粗暴1A,嘎嘎!

 1 //#define LOCAL

 2 #include <iostream>

 3 #include <cstdio>

 4 #include <cstring>

 5 #include <algorithm>

 6 using namespace std;

 7 

 8 int a[1010];

 9 int dp[1010];

10 

11 int main(void)

12 {

13     #ifdef LOCAL

14         freopen("1087in.txt", "r", stdin);

15     #endif

16 

17     int n;

18     while(scanf("%d", &n) && n)

19     {

20         int i;

21         for(i = 0; i < n; ++i)

22         {

23             scanf("%d", &a[i]);

24             dp[i] = a[i];

25         }

26 

27         for(i = 1; i < n; ++i)

28             for(int j = 0; j < i; ++j)

29             {

30                 if(a[j] < a[i])

31                     dp[i] = max(dp[i], dp[j] + a[i]);

32             }

33 

34         int ans = a[0];

35         for(i = 1; i < n; ++i)

36             ans = max(ans, dp[i]);

37         printf("%d\n", ans);

38     }

39     return 0;

40 }
代码君

你可能感兴趣的:(super)