#3878 最小值

描述

输入

第一行输入一个正整数 n和四个整数A,B,C,D 。

第二行输入 n个整数,第 i个数表示ai

输出

输出一行一个整数ans 表示答案。

样例输入[复制]

5 0 0 1 10
9 9 5 2 6 

样例输出[复制]

81

提示

ST表优化区间最值查询,预处理Log数组O(1)查询对数,加上DLZ常数剪枝就可以过掉了
code:
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 using namespace std;
 5 long long read(){
 6     long long x=0,f=1;
 7     char c=getchar();
 8     while(!isdigit(c)){
 9         if(c=='-')f=-1;
10         c=getchar();
11     }
12     while(isdigit(c)){
13         x=(x<<3)+(x<<1)+c-'0';
14         c=getchar();
15     }
16     return x*f;
17 }
18 long long a[500005];
19 long long n,A,B,C,D;
20 long long Function(long long a){
21     return A*a*a*a+B*a*a+C*a+D;
22 }
23 long long g[500005];
24 long long f[500005][30];
25 int Log[500006];
26 long long Ask(long long l,long long r){
27     long long k;
28     k=Log[r-l+1];
29     return min(f[l][k],f[r+1-(1<<k)][k]);
30 }
31 void pre(){
32     Log[1]=0;
33     for(int i=1;i<=16;i++){
34         Log[1<<i]=i;
35     }
36     for(int i=3;i<=500000;i++){
37         if(!Log[i])Log[i]=Log[i-1];
38     }
39 }
40 int main(){
41 //    freopen("min.in","r",stdin);
42 //    freopen("min.out","w",stdout);
43     pre();
44     n=read(),A=read(),B=read(),C=read(),D=read();
45     for(int i=1;i<=n;i++)a[i]=read();
46     for(int i=1;i<=n;i++)f[i][0]=a[i];
47     for(int j=1;j<=Log[n];j++)
48         for(int i=1;i+(1<<j)-1<=n;i++)
49             f[i][j]=min(f[i][j-1],f[i+(1<<(j-1))][j-1]);
50     for(int i=1;i<=n;i++)g[i]=-9999999999999;
51     g[0]=0;
52     for(int i=1;i<=n;i++){
53         for(int j=max(i-125,0);j<i;j++){
54             g[i]=max(g[i],g[j]+Function(Ask(j+1,i)));
55         }
56     }
57     cout<<g[n];
58     return 0;
59 }

over

转载于:https://www.cnblogs.com/saionjisekai/p/9915298.html

11.06T1 DLZ常数剪枝+DP相关推荐

  1. FZOJ 2014年11月份月赛 ytaaa(dp + RMQ)

    题目链接:http://acm.fzu.edu.cn/contest/problem.php?cid=140&sortid=3 Problem Description Ytaaa作为一名特工执 ...

  2. 【原创】概率DP总结 by kuangbin

    概率DP主要用于求解期望.概率等题目. 转移方程有时候比较灵活. 一般求概率是正推,求期望是逆推.通过题目可以体会到这点. 首先先推荐几篇参考的论文: <信息学竞赛中概率问题求解初探> & ...

  3. Hie with the Pie(Floyd+状压dp)

    描述 传送门:poj-3311  The Pizazz Pizzeria prides itself in delivering pizzas to its customers as fast as ...

  4. NOJ 1111 保险箱的密码 【大红】 [区间dp]

    传送门 保险箱的密码 [大红] 时间限制(普通/Java) :  1000 MS/  3000 MS           运行内存限制 : 65536 KByte 总提交 : 118          ...

  5. bzoj1079: [SCOI2008]着色方案(DP)

    1079: [SCOI2008]着色方案 题目:传送门 题解: DP刚神多年前讲过的一道神题. 二话不说,上来就是一个六维数组:F[i][a][b][c][d][e]//表示上一次涂的颜色是还剩下i次 ...

  6. URAL 1203 Scientific Conference(贪心 || DP)

    Scientific Conference 之前一直在刷计算几何,邀请赛连计算几何的毛都买见着,暑假这一段时间就做多校,补多校的题目,刷一下一直薄弱的DP.多校如果有计算几何一定要干掉-.- 题意:给 ...

  7. 【Kuangbin 带你飞系列】 基础dp

    dp好难啊啊啊啊啊啊啊啊啊啊 HDU1024 Max Sum Plus Plus 题目大意就是给你一个序列从里面截出连续m段使每一段区间不相交并且和最大 思路就是: 集合表示 :我们先确定状态dp[i ...

  8. zoj 3329 概率dp

    转自:https://www.cnblogs.com/kuangbin/archive/2012/10/02/2710606.html 题目大意: 有三个骰子,分别有k1,k2,k3个面.每次掷骰子, ...

  9. HDU 4628 Pieces(DP + 状态压缩)

    Pieces 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4628 题目大意:给定一个字符串s,如果子序列中有回文,可以一步删除掉它,求把整个序列删除 ...

最新文章

  1. C/C++面试题—实现MyString类
  2. Spring:@Transactional 注解使用讲解
  3. MyBatis3源码解析(4)参数解析
  4. Java执行jar总结
  5. 【leetcode】 Unique Binary Search Trees (middle)☆
  6. 英特尔 超核芯显卡 620mac_2020双11装机。科学计算工作站配置推荐。i9-10980XE加3080显卡加64G ECC内存...
  7. 如何查询redhat的版本信息
  8. STM32官方编程IDE及烧录软件介绍
  9. ubuntu安装mplay
  10. 爱站网关键词挖掘查询工具-批量网站关键词挖掘导出软件免费下载
  11. 用数学思想演绎的一些系统概念
  12. ictclas java 下载,10分钟开始使用ICTCLAS Java版
  13. Excel学习笔记:P10-图表制作(下)
  14. 结构类型的定义,应用
  15. 卷积神经网络中卷积的作用与原理
  16. edpluse怎么运行c语言,使用EditPlus的一些小技巧
  17. python基础语言与应用第五章_Python基础教程读书笔记(第5章—第6章:条件、循环和其他语句;抽象)...
  18. 手机计算机怎么打游戏,嫌手机屏幕小,玩游戏不爽?教你如何把手机屏幕投到电脑...
  19. 合资车、国产车 和 新能源汽车都有哪些品牌?
  20. 用友畅捷通T6数据升级到T+的步骤图解

热门文章

  1. 网络中没有 计算机,计算机中没有检测到任何网络硬件是什么原因
  2. axi4协议的乱序_一篇文章读懂读透FPGA AXI4 总线协议
  3. python类的构造函数是_python类(class)的构造函数、初始化函数、析构函数
  4. python输出大字号汉字_Python中输出ASCII大文字、艺术字、字符字小技巧
  5. java底层模型_Java I/O模型及其底层原理,夯实你的开发基础
  6. oracle 查询当年数据_查询ORACLE数据库TOP SQL使用情况
  7. 在 vue/cli 中使用 Module Federation
  8. win7计算机找不到脚本文件夹,win7系统开机出现无法找到脚本文件怎么办
  9. python有三个包如何只导入两个包_云计算开发学习笔记:Python3如何从一个包中导入*...
  10. java lazy_Java AtomicLong lazySet()用法及代码示例