题目大意:

有 nnn 个怪物,每个怪物有一个战力值 aia_iai​ ,你可以选择击败他或放走他,放走他没有经验值,击败他可以获得 aia_iai​ 的经验值,如果击败的数量是偶数,则还可以获得 aia_iai​ 的经验值,求最后能获得多少经验值。

分析

一眼 DP,按套路做。

定义状态:

dpi,0/1dp_{i,0/1}dpi,0/1​:前 iii 只怪物,选了奇数个怪物的最大经验值或选了偶数个怪物的最大经验值。

答案:

max⁡(dpn,0,dpn,1)\max(dp_{n,0},dp_{n,1})max(dpn,0​,dpn,1​)

状态转移方程:

dpi,0dp_{i,0}dpi,0​

不选就是继承 dpi−1,0dp{i-1,0}dpi−1,0,选了就是在前 i−1i-1i−1 个中选了偶数个(因为选完这个变奇数了)的最大价值加上 aia_iai​,即 dpi−1,1+aidp_{i-1,1}+a_idpi−1,1​+ai​

最后就是 dpi,0=max⁡(dpi−1,0,dpi−1,1+ai)dp_{i,0}=\max(dp_{i-1,0},dp_{i-1,1}+a_i)dpi,0​=max(dpi−1,0​,dpi−1,1​+ai​)

dpi,1dp_{i,1}dpi,1​

不选就是继承 dpi−1,1dp{i-1,1}dpi−1,1,选了就是在前 i−1i-1i−1 个中选了奇数个(因为选完这个变偶数了)的最大价值加上 2×ai2\times a_i2×ai​,即 dpi−1,1+2×aidp_{i-1,1}+2\times a_idpi−1,1​+2×ai​

最后就是 dpi,1=max⁡(dpi−1,1,dpi−1,0+2×ai)dp_{i,1}=\max(dp_{i-1,1},dp_{i-1,0}+2\times a_i)dpi,1​=max(dpi−1,1​,dpi−1,0​+2×ai​)

边界条件:

由于前 000 个不能选奇数个,所以 dp0,0=−∞dp_{0,0}=-\inftydp0,0​=−∞

AC code

#include<bits/stdc++.h>
#define int long long
#define endl "\n"
using namespace std;
const int maxn=1e6+5;
int n,a[maxn],dp[maxn][2];
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
dp[0][0]=-1e18;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
dp[i][0]=max(dp[i-1][0],dp[i-1][1]+a[i]);
dp[i][1]=max(dp[i-1][1],dp[i-1][0]+2*a[i]);
}
cout<<max(dp[n][0],dp[n][1]);
return 0;
}

题解:AT_abc369_d [ABC369D] Bonus EXP的更多相关文章

  1. 深入理解Oracle的imp/exp 和各版本之间的规则

    Oracle数据中IMP/EXP工具可用于对数据进行迁移.IMP命令用于把Dmp文件从本地导入到远程数据库服务器,而EXP命令则是把数据从远程数据库服务器导出到本地的Dmp文件.其功能相当于Oracl ...

  2. exp导出出现:ORA-00904: "POLTYP": invalid identifier

    相关文章:    <exp导出出现:ORA-00904: : invalid identifier>:http://blog.itpub.net/23135684/viewspace-13 ...

  3. 以交互方式使用exp/imp的演示

    众所周知,用exp/imp对数据库进行逻辑备份.包含表.用户,整个数据库,我们通常所熟悉的是使用命令行指定參数的方式来做的.以下我来演示一下不太经常使用的以交互方式的操作,操作非常easy.就是仅仅要 ...

  4. 【exp/imp】将US7ASCII字符集的dmp文件导入到ZHS16GBK字符集的数据库中

    [exp/imp]将US7ASCII字符集的dmp文件导入到ZHS16GBK字符集的数据库中 1.1  BLOG文档结构图 1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者,看完本文后 ...

  5. 【WC2019】数树 树形DP 多项式exp

    题目大意 有两棵 \(n\) 个点的树 \(T_1\) 和 \(T_2\). 你要给每个点一个权值吗,要求每个点的权值为 \([1,y]\) 内的整数. 对于一条同时出现在两棵树上的边,这条边的两个端 ...

  6. 【XSY2887】【GDOI2018】小学生图论题 分治FFT 多项式exp

    题目描述 在一个 \(n\) 个点的有向图中,编号从 \(1\) 到 \(n\),任意两个点之间都有且仅有一条有向边.现在已知一些单向的简单路径(路径上任意两点各不相同),例如 \(2\to 4\to ...

  7. SDOI2017 Round2 详细题解

    这套题实在是太神仙了..做了我好久...好多题都是去搜题解才会的 TAT. 剩的那道题先咕着,如果省选没有退役就来填吧. 「SDOI2017」龙与地下城 题意 丢 \(Y\) 次骰子,骰子有 \(X\ ...

  8. 算法(第四版)C# 习题题解——2.5

    写在前面 整个项目都托管在了 Github 上:https://github.com/ikesnowy/Algorithms-4th-Edition-in-Csharp 查找更方便的版本见:https ...

  9. BZOJ5119 生成树计数(prufer+生成函数+分治FFT+多项式exp)

    https://www.luogu.org/problemnew/solution/P4002 神树的题解写的很清楚了.稍微补充: 1.[x^i]ln(A(ax))=a^i[x^i]ln(A(x)), ...

  10. BZOJ5475 WC2019数树(prufer+容斥原理+树形dp+多项式exp)

    因为一大堆式子实在懒得写题解了.首先用prufer推出CF917D用到的结论,然后具体见前言不搭后语的注释. #include<iostream> #include<cstdio&g ...

随机推荐

  1. 微信小程序slot(二)

    在组件的 wxml 中可以包含 slot 节点,用于承载组件使用者提供的 wxml 结构. 默认情况下,一个组件的 wxml 中只能有一个 slot .需要使用多 slot 时,可以在组件 js 中声 ...

  2. RocketMQ实战—3.基于RocketMQ升级订单系统架构

    大纲 1.基于MQ实现订单系统核心流程的异步化改造 2.基于MQ实现订单系统和第三方系统的解耦 3.基于MQ实现将订单数据同步给大数据团队 4.秒杀系统的技术难点以及秒杀商详页的架构设计 5.基于MQ ...

  3. Jenkins+Coverage的代码覆盖率集成实践

    Jenkins+Coverage的代码覆盖率集成实践 一.工具介绍 Jenkins: Jenkins是一个开源的.基于Java开发的持续集成工具,它可以帮助开发人员自动化构建.测试和部署软件项目. C ...

  4. Mac安装Flume

    一.下载Flume(在SoftWare目录下) wget http://mirrors.tuna.tsinghua.edu.cn/apache/flume/1.8.0/apache-flume-1.8 ...

  5. 《刚刚问世》系列初窥篇-Java+Playwright自动化测试-15- iframe操作--番外篇 (详细教程)

    1.简介 通过前边三篇的学习,想必大家已经对iframe有了一定的认识和了解,今天这一篇主要是对iframe的一些特殊情况的介绍和讲解,主要从iframe的定位.监听事件和执行js脚本三个方面进行展开 ...

  6. 大数据之路Week10_day05 (Redis总结I)

    正文 1.为什么使用redis 分析:博主觉得在项目中使用redis,主要是从两个角度去考虑:性能和并发.当然,redis还具备可以做分布式锁等其他功能,但是如果只是为了分布式锁这些其他功能,完全还有 ...

  7. 面试题40. 最小的k个数

    地址:https://leetcode-cn.com/problems/zui-xiao-de-kge-shu-lcof/ <?php /** * 面试题40. 最小的k个数 * 输入整数数组 ...

  8. vue练习用免费开源api大全

    1. 网易云api 网易云api是网上一位大神工具网易云获取的,数据都是真实的网易云数据 2. api大全 这是csdn一个兄弟收集的,种类挺多,就是有一些需要money,不过大部分还是免费的 3.  ...

  9. [第四章]ABAQUS CM插件中文手册

    ABAQUS Composite Modeler User Manual(zh-CN) Dassault Systèmes, 2018 注: 源文档的交叉引用链接,本文无效 有些语句英文表达更易理解, ...

  10. 痞子衡嵌入式:了解主从系统中i.MXRT系列MCU从主处理器接收App数据包超时机制

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是主从系统中i.MXRT系列MCU从主处理器接收App数据包超时机制. 在痞子衡旧文 <RT四位数Boot模式> 里的 1.2 ...