求递增子序列的最大和,没什么好说的。
粗暴1A,嘎嘎!
1 //#define LOCAL 2 #include3 #include 4 #include 5 #include 6 using namespace std; 7 8 int a[1010]; 9 int dp[1010];10 11 int main(void)12 {13 #ifdef LOCAL14 freopen("1087in.txt", "r", stdin);15 #endif16 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 }