zoukankan      html  css  js  c++  java
  • C2-Zexal的竞赛

    题目描述

    在一场竞赛中有n道题目,每道题都会对应一个分值,你可以选择任意一道题作答,比如你选择了x分的题目,那么在作答完毕(假设一定可以得分)后,你将获得x分,但是这场比赛中分值等于x1x+1的其他题目就会消失,那么这场比赛中你最多可以得到多少分?

    输入

    第一个数为题目总数n0<n<1e5)

    接下来为n整数a1a2a3.....(0<ai<1e5)

    输出

    输出你可以得到的最高分

    输入样例

    9
    1 2 1 3 2 2 2 2 3

    输出样例

    10

    样例解释

    每次都选择2 选择5次即可得到10分 1和3根据题目要求会消失

    代码

    #include <iostream>
    #include <stdio.h>
    #include <string.h>
    using namespace std;
    int n,dp[100005][2],a[100005],mod = 1000000007;
    int main()
    {
        while(~scanf("%d",&n))
        {
            memset(a, 0, sizeof(a));
            memset(dp, 0, sizeof(dp));
            int maximum = 0, ans = 0;
            for(int i = 0; i < n; i++)
            {
                int t;
                scanf("%d",&t);
                a[t]++;
                maximum = max(t,maximum);
            }
            for(int i = 1; i <= maximum; i++)
            {
                dp[i][1] = dp[i-1][0] + i*a[i];      //选这道题,获得这道题的分值和不选上一道题的分值
                dp[i][0] = max(dp[i-1][0], dp[i-1][1]);  // 不选这道题,获得上一道题的分值
                ans = max(max(dp[i][1], dp[i][0]), ans);
            }
            printf("%d
    ",ans);
        }
        return 0;
    }
  • 相关阅读:
    git学习02
    每日一记8.12
    git学习01
    每日一记8.7
    每日一记8.6
    spring boot使用tomcat启动
    每日一记8.1
    【学习笔记】HTML5 WebGL游戏引擎开发
    【转】使用 WebGL 进行 3D 开发,第 3 部分: 添加用户交互
    【转】使用 WebGL 进行 3D 开发,第 2 部分: 使用 WebGL 库以更少的编码做更多的事情
  • 原文地址:https://www.cnblogs.com/kubab119/p/11823316.html
Copyright © 2011-2022 走看看