CF260--C--dp<最大不连续子序列和>

啊 .... 这次的CF我正好没去做啊=-=   那晚 电脑突然神经质了 各种网页超慢打开。。。

更坑的是 持续了1个多小时 都搞的我想 重装了 ....  MD  又可以正常访问了 卧槽*******

但  巧的是 那时候 正好快开始CF了 一下子 没心情去做了

        touch  me

今天 去看了下 就是前几天 做的那个 最大不连续子序列和  我也特别提过 =-=

好忧伤....

  

 1 #include <iostream>
 2 #include <algorithm>
 3 #include <cstring>
 4 using namespace std;
 5 
 6 typedef long long LL;
 7 const int size = 100000;
 8 LL cnt[size];
 9 LL dp[size];
10 
11 int main()
12 {
13     int n , num , mmax;
14     LL ans;
15     while( cin >> n )
16     {
17         memset( cnt , 0 , sizeof(cnt) );
18         mmax = 0;
19         for( int i = 1 ; i<=n ; i++ )
20         {
21             cin >> num;
22             cnt[ num ] ++;
23             if( mmax < num )
24                 mmax = num;
25         }
26         dp[1] = cnt[1]*1;
27         dp[2] = cnt[2]*2;
28         ans = max( dp[1] , dp[2] );
29         for( int i = 3 ; i<=mmax ; i++ )
30         {
31             dp[i] = max( dp[i-2] , dp[i-3] ) + cnt[i]*i;
32             if( ans < dp[i] )
33                 ans = dp[i];
34         }
35         cout << ans << endl;
36     }
37     return 0;
38 }
View Code
just follow your heart
原文地址:https://www.cnblogs.com/radical/p/3902460.html