题目链接:
Marvolo Gaunt’s Ring CodeForces - 855B

题目大意:
给定一段序列:a1,a2,a3,……an,
给定三个数:p,q,r(注意数据范围,代码里ans=-1e18,就wrong在了第23个样例上了,开到-4e18就ok了)
求ai*p+aj*q+ak*r的最大值,且要求i<=j<=k;数据范围: 1 ≤ n ≤ 105
时间限制: 2000 ms
最暴力的方法:从1-->n枚举每个数作为aj,枚举[1,j]里的每个数作为ai,枚举[j,n]里的每个数作为ak,计算并比较
当aj固定,只需找出最大的ai*p和ak*r即可;
这里需要讨论下,如果p>=0,在[1,j]里找最大的ai;如果p<0,在[1,j]里找最小的ai;
r如上。这样的时间复杂度仅仅是:n*log(n)
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long LL;
const int num=1e5+10;
struct node
{int L,R;LL mi,ma;
}a[num<<2];
LL d[num];
void update(int k)
{a[k].ma=max(a[k<<1].ma,a[k<<1|1].ma);a[k].mi=min(a[k<<1].mi,a[k<<1|1].mi);return ;
}
void build(int k,int L,int R)
{a[k].L=L;a[k].R=R;a[k].ma=-4e18;a[k].mi=4e18;if(L==R){a[k].ma=a[k].mi=d[L];return ;}int mid=(L+R)>>1;build(k<<1,L,mid);build(k<<1|1,mid+1,R);update(k);return ;
}
LL search_mi(int k,int L,int R)
{if(a[k].L>=L&&a[k].R<=R) {return a[k].mi;} int mid=(a[k].L+a[k].R)>>1;LL ans=4e18;if(L<=mid) ans=min(ans,search_mi(k<<1,L,R));if(R>mid)  ans=min(ans,search_mi(k<<1|1,L,R));return ans;
}
LL search_ma(int k,int L,int R)
{if(a[k].L>=L&&a[k].R<=R) {return a[k].ma;} int mid=(a[k].L+a[k].R)>>1;LL ans=-4e18;if(L<=mid) ans=max(ans,search_ma(k<<1,L,R));if(R>mid)  ans=max(ans,search_ma(k<<1|1,L,R));return ans;
}
int main()
{LL n,p,q,r;scanf("%lld%lld%lld%lld",&n,&p,&q,&r);build(1,1,n);for(int i=1;i<=n;i++)scanf("%lld",&d[i]);build(1,1,n);LL le,re,ans=-4e18;for(int i=1;i<=n;i++){le= p>=0 ? search_ma(1,1,i) : search_mi(1,1,i);re= r>=0 ? search_ma(1,i,n) : search_mi(1,i,n);ans=max(ans,p*le+q*d[i]+r*re);}printf("%lld",ans);return 0;
}

Marvolo Gaunt's Ring CodeForces - 855B+线段树+维护区间最大值和最小值相关推荐

  1. 线段树维护区间最大值+第 45 届(ICPC)亚洲区域赛(昆明)L题Simone and Graph Coloring

    题意: 给你n个数的序列,当满足i<ji<ji<j andandand ai>aja_i>a_jai​>aj​时,这两个点之间有一条边,现在对点染色,要求每个点相邻 ...

  2. Marvolo Gaunt's Ring ---CodeForces - 855B(思维题)

    题目链接:http://codeforces.com/problemset/problem/855/B Marvolo Gaunt's Ring Professor Dumbledore is hel ...

  3. Codeforces Round #742 (Div. 2) E. Non-Decreasing Dilemma (线段树维护区间连续问题)

    题意: 操作1:把x位置的数字修改成y. 操作2:查询[l,r]之间不下降序列的个数. 题解: 线段树维护区间和问题 (这是套路,想不到只能说做题少别打我) . 用五个变量进行维护. sum区间总个数 ...

  4. Can you answer these queries V SPOJ - GSS5 (分类讨论+线段树维护区间最大子段和)

    recursion有一个整数序列a[n].现在recursion有m次询问,每次她想知道Max { A[i]+A[i+1]+...+A[j] ; x1 <= i <= y1 , x2 &l ...

  5. BZOJ1018 | SHOI2008-堵塞的交通traffic——线段树维护区间连通性+细节

    [题目描述] BZOJ1018 | SHOI2008-堵塞的交通traffic 有一天,由于某种穿越现象作用,你来到了传说中的小人国.小人国的布局非常奇特,整个国家的交通系统可 以被看成是一个2行C列 ...

  6. BZOJ-4811: [Ynoi2017]由乃的OJ (树链剖分 线段树维护区间操作值 好题)

    4811: [Ynoi2017]由乃的OJ Time Limit: 6 Sec  Memory Limit: 256 MB Submit: 366  Solved: 118 [Submit][Stat ...

  7. E. Sign on Fence(整体二分 + 线段树维护区间最大连续 1 的个数)

    E. Sign on Fence 给定一个长度为nnn的数组aaa,1≤ai≤1091 \leq a_i \leq 10 ^ 91≤ai​≤109,有mmm次询问,每次给定l,r,kl, r, kl, ...

  8. 【线段树-维护区间最小值和区间和】2021 ICPC网络赛第一场 D: Edge of Taixuan

    Problem D: Edge of Taixuan 评测传送门 (ps: 评测时需要先花费一个币买下题目集后方可进行提交并评测.) 题目大意: 给出 n n n个结点, m m m次操作,每次操作给 ...

  9. 【GDKOI2016Day1T1-魔卡少女】【拆位】线段树维护区间内所有连续子区间的异或和...

    题意:给出N个数,M个操作.操作有修改和询问两种,每次修改将一个数改成另一个数,每次询问一个区间的所有连续子区间的异或和.n,m<=100000,ai<=1000 题解: 当年(其实也就是 ...

最新文章

  1. 自带中心调整的电单车模型-DongGuan BDS
  2. Android:学习AIDL,这一篇文章就够了(下)
  3. (转)git常用命令
  4. python3中的正则模块
  5. python form_Python中form的使用
  6. 苹果调整App Store政策;国内首个5G+8K超高清国产化白皮书发布;Windows计算器移植到到 Linux|极客头条
  7. [POJ3080 Blue Jeans]
  8. 小凡的Python之路——安装
  9. c语言文字闪烁表白,C语言表白程序1颜色变化的心
  10. 让电机动起来!Arduino驱动步进电机教程
  11. java tostring null_Java String转换时为null的问题
  12. Java项目:基于jsp+mysql+Spring+SpringMVC+mybatis的高速公路收费管理系统
  13. 我的世界Java版种子查询器_种子(世界生成)
  14. 解决MySQL5.7在MAC下登录ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
  15. oracle分段时间统计总数,oracle中根据年份统计每月的总数?解决思路
  16. 【语音识别】基于MFCC和MEL倒频系数实现声纹识别附matlab代码
  17. 时序知识图谱的增量构建
  18. hostapd的配置项ht_capab
  19. maven之packaging标签
  20. 新版超简单的PDF阅读器

热门文章

  1. python中print函数的end和sep参数的用法
  2. 复旦大学邱锡鹏:若优化顺利,MOSS三月底开源;库克或被踢出苹果董事会;华为云联合CSDN发布智能化编程助手Snap|极客头条
  3. Udacity机器人软件工程师课程笔记(十八)-机械臂仿真控制实例(其三)-KR210机械臂反向运动学
  4. 苹果手机如何投屏到电视机?新手一看就懂教程
  5. 51Talk第一天 培训系列1
  6. 晶振PPM,PPB单位换算
  7. 【三维目标检测】Second 模型 (一)
  8. 英语语法---表语详解
  9. Java RSA加密解密
  10. 淘宝/天猫、拼多多、1688产品详情页API、SKU信息获取展示