Codeforces 855B - Marvolo Gaunt's Ring
思路:①枚举a[j],a[i]和a[k]分别用前缀最小值最大值和后缀最小值和后缀最大值确定。
②dp,dp[i][j]表示到第j为止,前i+1个值加起来的最大值。
代码:
代码①:
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N=1e5+;
const int INF=0x3f3f3f3f; int a[N];
int premx[N];
int premn[N];
int sufmx[N];
int sufmn[N];
int main()
{
ios::sync_with_stdio(false);
cin.tie();
ll n,p,q,r;
cin>>n>>p>>q>>r;
for(int i=;i<=n;i++)cin>>a[i];
premx[]=-INF,premn[]=INF;
for(int i=;i<=n;i++)premx[i]=max(premx[i-],a[i]),premn[i]=min(premn[i-],a[i]);
sufmx[n+]=-INF,sufmn[n+]=INF;
for(int i=n;i>=;i--)sufmx[i]=max(sufmx[i+],a[i]),sufmn[i]=min(sufmn[i+],a[i]); ll ans=-;
for(int i=;i<=n;i++)ans=max(ans,max(p*premx[i],p*premn[i])+q*a[i]+max(r*sufmx[i],r*sufmn[i]));
cout<<ans<<endl;
return ;
}
代码②:
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define mem(a,b) memset(a,b,sizeof(a)) const int N=1e5+;
const ll _INF=-8e18;
ll dp[][N];
int a[N];
int main()
{
ios::sync_with_stdio(false);
cin.tie();
ll p,q,r,n;
cin>>n>>p>>q>>r;
for(int i=;i<=n;i++)cin>>a[i]; dp[][]=_INF;
dp[][]=_INF;
dp[][]=_INF;
for(int i=;i<=n;i++)
{
dp[][i]=max(dp[][i-],p*a[i]);
dp[][i]=max(dp[][i-],dp[][i]+q*a[i]);
dp[][i]=max(dp[][i-],dp[][i]+r*a[i]);
}
cout<<dp[][n]<<endl;
return ;
}
Codeforces 855B - Marvolo Gaunt's Ring的更多相关文章
- Codeforces 855B:Marvolo Gaunt's Ring(枚举,前后缀)
B. Marvolo Gaunt's Ring Professor Dumbledore is helping Harry destroy the Horcruxes. He went to Gaun ...
- Marvolo Gaunt's Ring(巧妙利用前后缀进行模拟)
Description Professor Dumbledore is helping Harry destroy the Horcruxes. He went to Gaunt Shack as h ...
- B. Marvolo Gaunt's Ring 前缀后缀
B. Marvolo Gaunt's Ring 这种一般只有三个的都可以处理前缀和后缀,再枚举中间这个值. 这个和之前写过的C. Four Segments 前缀后缀 处理方式很像. #include ...
- 【ST】【CF855B】 Marvolo Gaunt's Ring
传送门 Description 给定三个数 \(p~,~q~,~r~\),以及一个数组 \(a\), 找出三个数 \(i~,~j~,~k\) ,其中 \(i~\leq~j~\leq~k\) 最大化 \ ...
- 【CF Manthan, Codefest 17 B】Marvolo Gaunt's Ring
[链接]h在这里写链接 [题意] 给你n个数字; 让你在其中找出三个数字i,j,k(i<=j<=k); 使得p*a[i]+q*a[j]+r*a[k]最大; [题解] /* 有一个要 ...
- CodeForces - 855B ring 前缀和
邓布利多教授正在帮助哈利摧毁魂器.当他怀疑一个魂器出现在那里时,他去了冈特沙克.他看到Marvolo Gaunt的戒指,并将其确定为魂器.虽然他摧毁了它,但仍然受到诅咒的影响.斯内普教授正在帮助邓布利 ...
- codeforce 855B
B. Marvolo Gaunt's Ring time limit per test 2 seconds memory limit per test 256 megabytes input stan ...
- Manthan, Codefest 17
A. Tom Riddle's Diary time limit per test 2 seconds memory limit per test 256 megabytes input standa ...
- Harry Potter
Names appearing in "Harry Potter" 1.Harry Potter ①Harry is from Henry. ②Harry is related t ...
随机推荐
- linux命令:linux权限管理命令
权限管理命令 文件的权限只有你两个人可以更改,一个是root,一个是文件所有者. 命令名称:chmod 命令英文原意:change the permissions mode of a file ...
- C# 拼接字符串的几种方式和性能
开发过程中常用到的拼接字符串的方法有三种: 1 简单 “+=” 拼接法 1 2 3 4 5 string str="a"; str+="c"+"d ...
- 查看mysql主外键信息
SELECT *FROMinformation_schema.key_column_usage tWHERE t.constraint_schema = '库名称'AND t.constraint_ ...
- VS2010/MFC编程入门之四十八(字体和文本输出:文本输出)
鸡啄米在上一节中讲了CFont字体类,本节主要讲解文本输出的方法和实例. 文本输出过程 在文本输出到设备以前,我们需要确定字体.字体颜色和输出的文本内容等信息.Windows窗口的客户区由应用程序管理 ...
- transform 和 transition
transform的属性包括:rotate() / skew() / scale() / translate() /matrix() 其中 rotate() 旋转度数,0-360 skew() 元素 ...
- webstorm使用心得
收藏夹功能:当工程目录很庞大时,有些子目录很经常打开,但层级又很深,这时候可以把目录添加到收藏夹里面,添加成功后,左侧有个“Favorites”菜单 面包屑导航:除了左侧的工程页面,可以选择目录之外, ...
- 论文笔记:语音情感识别(四)语音特征之声谱图,log梅尔谱,MFCC,deltas
一:原始信号 从音频文件中读取出来的原始语音信号通常称为raw waveform,是一个一维数组,长度是由音频长度和采样率决定,比如采样率Fs为16KHz,表示一秒钟内采样16000个点,这个时候如果 ...
- Android查缺补漏(View篇)--布局文件中的“@+id”和“@id”有什么区别?
Android布局文件中的"@+id"和"@id"有什么区别? +id表示为控件指定一个id(新增一个id),如: <cn.codingblock.vie ...
- 【运维技术】Nexus私服安装配置常用问题
maven私服安装配置 软件安装及基本配置 安装配置 # 安装jdk,参考其他教程 mkdir -p /app/nexus2 # 创建目录 wget https://download.sonatype ...
- .NET,ASP.NET,ASP.NET MVC 之间的区别
https://www.cnblogs.com/wwym/p/5555772.html