zoukankan      html  css  js  c++  java
  • cf455A Boredom

    A. Boredom
    time limit per test
    1 second
    memory limit per test
    256 megabytes
    input
    standard input
    output
    standard output

    Alex doesn't like boredom. That's why whenever he gets bored, he comes up with games. One long winter evening he came up with a game and decided to play it.

    Given a sequence a consisting of n integers. The player can make several steps. In a single step he can choose an element of the sequence (let's denote it ak) and delete it, at that all elements equal to ak + 1 and ak - 1 also must be deleted from the sequence. That step brings ak points to the player.

    Alex is a perfectionist, so he decided to get as many points as possible. Help him.

    Input

    The first line contains integer n (1 ≤ n ≤ 105) that shows how many numbers are in Alex's sequence.

    The second line contains n integers a1a2, ..., an (1 ≤ ai ≤ 105).

    Output

    Print a single integer — the maximum number of points that Alex can earn.

    Sample test(s)
    input
    2
    1 2
    
    output
    2
    
    input
    3
    1 2 3
    
    output
    4
    
    input
    9
    1 2 1 3 2 2 2 2 3
    
    output
    10
    
    Note

    Consider the third test example. At first step we need to choose any element equal to 2. After that step our sequence looks like this [2, 2, 2, 2]. Then we do 4 steps, on each step we choose any element equals to 2. In total we earn 10 points.

    low爆了……做div1洋洋得意的5分钟做了A……结果hacked……最后只有重交了A然后rating哗哗的掉

    题意是一个序列做删数游戏,如果删去一个x,就还要删掉所有大小是(x+1)、(x-1)的数,这样获得的价值是x,求删完整个序列的最大价值

    那么显然如果你要删掉一个数x,那么其他所有大小是x的也要删掉。因为只删一个x、其他x不动,这样显然是不优的

    用ans[]保存删去所有大小为x的数能获得的价值

    然后f[i][0/1]表示1到i、第i个数取/不取的最大价值

    f[i][0]不取可以从第(i-1)个取/不取转移而来

    f[i][1]取了只能从第(i-1)个不取转移而来

    原来我算f 的时候for只到n……但是应该是到max(a[i])就是无脑100000的……然后hacked

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cstdlib>
    #include<cmath>
    #include<algorithm>
    #define LL long long
    using namespace std;
    int n,x;
    LL ans[100010];
    LL f[100010][2];
    inline int read()
    {
        int x=0,f=1;char ch=getchar();
        while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
        while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
        return x*f;
    }
    int main()
    {
        n=read();
        for (int i=1;i<=n;i++)
        {
            x=read();
            ans[x]+=x;
        }
        for (int i=1;i<=100000;i++)
        {
            f[i][0]=max(f[i-1][0],f[i-1][1]);
            f[i][1]=f[i-1][0]+ans[i];
        }
        printf("%lld",max(f[100000][0],f[100000][1]));
    }
    

      

    ——by zhber,转载请注明来源
  • 相关阅读:
    macbook使用美化工具在屏幕展示出常查信息
    Mac 下 Docker 运行较慢的原因分析及个人见解
    Json Web Token
    Mac开发环境部署
    python3.6_多进程_multiprocessing.pool_concurrent.futures_ProcessPoolExecutor_对比
    apache2_nginx_反向代理设置_https_不验证后端证书_只允许访问首页
    awstats_yum_dnf_centos8_nginx_X-Forwarded-For
    Django_uwsgi_nginx_centos_笔记
    python3_pandas.HDFStore_h5py_HDF5_的笔记
    echarts_highcharts_笔记_风向箭头
  • 原文地址:https://www.cnblogs.com/zhber/p/4035930.html
Copyright © 2011-2022 走看看