codeforces #260 DIV 2 C题Boredom(DP)

来源:互联网 发布:传奇账号数据库 编辑:程序博客网 时间:2024/05/16 07:37

题目地址:http://codeforces.com/contest/456/problem/C

脑残了。。DP只DP到了n。。应该DP到10w+的。。

代码如下:

#include <iostream>#include <cstdio>#include <string>#include <cstring>#include <stdlib.h>#include <math.h>#include <ctype.h>#include <queue>#include <map>#include <set>#include <algorithm>using namespace std;__int64 a[110000], dp[110000];int main(){    __int64 n, x, i, j, max1=-1;    scanf("%I64d",&n);    memset(a,0,sizeof(a));    memset(dp,0,sizeof(dp));    for(i=0;i<n;i++)    {        scanf("%I64d",&x);        a[x]++;    }    dp[0]=0;    dp[1]=a[1];    dp[2]=a[2]*2;    max1=max(dp[1],dp[2]);    for(i=3;i<=100003;i++)    {        dp[i]=max(dp[i-2],dp[i-3])+a[i]*i;        if(max1<dp[i])            max1=dp[i];    }    printf("%I64d\n",max1);    return 0;}


1 0
原创粉丝点击