CF 855B. Marvolo Gaunt's Ring【枚举||递推】
来源:互联网 发布:正当防卫3内存优化补丁 编辑:程序博客网 时间:2024/06/05 20:25
time limit per test2 seconds
memory limit per test256 megabytes
inputstandard input
outputstandard output
Professor Dumbledore is helping Harry destroy the Horcruxes. He went to Gaunt Shack as he suspected a Horcrux to be present there. He saw Marvolo Gaunt’s Ring and identified it as a Horcrux. Although he destroyed it, he is still affected by its curse. Professor Snape is helping Dumbledore remove the curse. For this, he wants to give Dumbledore exactly x drops of the potion he made.
Value of x is calculated as maximum of p·ai + q·aj + r·ak for given p, q, r and array a1, a2, … an such that 1 ≤ i ≤ j ≤ k ≤ n. Help Snape find the value of x. Do note that the value of x may be negative.
Input
First line of input contains 4 integers n, p, q, r ( - 109 ≤ p, q, r ≤ 109, 1 ≤ n ≤ 105).
Next line of input contains n space separated integers a1, a2, … an ( - 109 ≤ ai ≤ 109).
Output
Output a single integer the maximum value of p·ai + q·aj + r·ak that can be obtained provided 1 ≤ i ≤ j ≤ k ≤ n.
Examples
input
5 1 2 3
1 2 3 4 5
output
30
input
5 1 2 -3
-1 -2 -3 -4 -5
output
12
Note
In the first sample case, we can take i = j = k = 5, thus making the answer as 1·5 + 2·5 + 3·5 = 30.
In second sample case, selecting i = j = 1 and k = 5 gives the answer 12.
一开始想到了递推式,没用数组,然后加以优化,WA在了第七组数据。
稍加研究再贴出。
AC代码:
//持续维护当前最大值
#include<iostream>#include<algorithm>#include<cmath>using namespace std;#define ll long long intconst ll _INF = -8e18;const int N = 1e5 + 10;ll dp[3][N];int a[N];int main(){ ll p, q, r, n; cin >> n >> p >> q >> r; for (int i = 1; i <= n; i++) { cin >> a[i]; } dp[0][0] = _INF; dp[1][0] = _INF; dp[2][0] = _INF; for (int i = 1; i <= n; i++) { dp[0][i] = max(dp[0][i - 1], p*a[i]); dp[1][i] = max(dp[1][i - 1], dp[0][i] + q*a[i]); dp[2][i] = max(dp[2][i - 1], dp[1][i] + r*a[i]); } cout << dp[2][n] << endl; return 0;}
- CF 855B. Marvolo Gaunt's Ring【枚举||递推】
- Codeforces 855 B Marvolo Gaunt's Ring
- Codeforces 855 B Marvolo Gaunt's Ring(dp)
- Manthan, Codefest 17: B. Marvolo Gaunt's Ring
- codeforces Manthan, Codefest 17 B Marvolo Gaunt's Ring(dp)
- Manthan, Codefest 17 Marvolo Gaunt's Ring
- codeforces Manthan, Codefest 17 B.Marvolo Gaunt's Ring (简单dp)
- Manthan, Codefest 17 B. Marvolo Gaunt's Ring(前后缀/dp)
- CF B. Working out dp 递推
- cf 551B 暴力枚举
- cf 742B Arpa's......
- 简单dp之递推(1)--CF 429B B.Working out
- (CF)B. Restore Cube (暴力枚举判断)
- 枚举暴力 cf B. Preparing Olympiad
- CF#368 B. Bakery (暴力枚举)
- CF 6 B - President's Office
- CF 6B President's Office
- cf 583 B. Robot's Task(模拟)
- 【知识整理】Node.js-Sequelize之原始查询
- gym101102I(模拟)
- Java 网络 IO 模型
- SQLite数据库使用方法详解
- 程序员是一个什么能力都可以发挥作用的平台
- CF 855B. Marvolo Gaunt's Ring【枚举||递推】
- 写在开始之前
- 5从尾到头打印链表python
- Python笔记--生成器
- shell 字体操作
- Cookie, LocalStorage 与 SessionStorage的区别
- Android Studio 安装时 Gradle sync failed: Cause: error in opening zip file 的错误
- 如何通过Mysql的二进制日志恢复数据库数据
- 全面了解Android热修复技术