题目背景

  $Maxtir$更喜欢序列的最小值。


题目传送门(内部题128)


输入格式

  第一行输入一个正整数$n$和四个整数$A,B,C,D$。
  第二行输入$n$个整数,第$i$个数表示$a_i$。


输出格式

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


样例

样例输入:

5 0 0 1 10
9 9 5 2 6

样例输出:

81


数据范围与提示

  对于$10\%$的数据,满足$n\leqslant 100$
  对于$20\%$的数据,满足$n\leqslant 1,000$
  对于另外$20\%$的数据,满足$A=B=0,C\leqslant 0$
  对于$100\%$的数据,满足$n\leqslant 2\times 10^5,\forall|f(a_i)|\leqslant 10^{13}$,输入数据均在整数$int$范围内


题解

第一眼,$\Theta(n^2)DP$,设$dp[i]$表示选到$i$的最大贡献。

转移很简单,枚举转移点即可。

第二眼,数据不好造,于是可以$j\geqslant \max(0,i-106)$就好啦……

其实我也不知道为什么$105$就$WA50$,$106$就直接$AC$了这也太巧了吧……

最后讲个故事,快搬好小板凳!!!

(话说你们为什么都爱听我讲故事额……

北岸大神:“动动,为什么我$QJ$还是会$TLE30$哇?!”

我:“???,不可能哇~“

北岸大神:”我调成$300$了!“

北岸大神:”我调成$100$了!“

北岸大神:”我$TM$都调成$1$了!!!“

我:”那你确定你写的是$j\geqslant \max(0,i-106)$嘛?“

北岸大神:”确定哇“

然而$\downarrow$

我:”……“

北岸大神:”窝槽“

左拐头朝下,小心别挂树叉上,忒疼。

时间复杂度:$\Theta(106\times n)$。

期望得分:$10$分。

实际得分:$100$分。


代码时刻

#include<bits/stdc++.h>
using namespace std;
int n,A,B,C,D;
long long a[200001];
long long dp[200001];
int main()
{
memset(dp,-0x3f,sizeof(dp));
scanf("%d%d%d%d%d",&n,&A,&B,&C,&D);
for(int i=1;i<=n;i++)scanf("%lld",&a[i]);
dp[0]=0;
for(int i=1;i<=n;i++)
{
int minn=max(0,i-106);
long long res=a[i];
for(int j=i-1;j>=minn;j--)
{
dp[i]=max(dp[i],dp[j]+A*res*res*res+B*res*res+C*res+D);
res=min(res,a[j]);
}
}
printf("%lld",dp[n]);
return 0;
}

rp++

[CSP-S模拟测试]:最小值(DP+乱搞)的更多相关文章

  1. Playrix Codescapes Cup (Codeforces Round #413, rated, Div. 1 + Div. 2)(A.暴力,B.优先队列,C.dp乱搞)

    A. Carrot Cakes time limit per test:1 second memory limit per test:256 megabytes input:standard inpu ...

  2. 2016 10 28考试 dp 乱搞 树状数组

    2016 10 28 考试 时间 7:50 AM to 11:15 AM 下载链接: 试题 考试包 这次考试对自己的表现非常不满意!! T1看出来是dp题目,但是在考试过程中并没有推出转移方程,考虑了 ...

  3. 【NOIP模拟赛】beautiful 乱搞(平衡树)+ST

    biubiu~~~ 我用平衡树处理的这道题,然而这种方法还是要看评测姬..... 正解是乱搞....就是枚举每一位数作为中位数,比他小的看做-1比他大的看做1,那么我们从一开始就有了一个绵延的山,我们 ...

  4. [CSP-S模拟测试]:军训队列(DP+乱搞)

    题目描述 有$n$名学生参加军训,军训的一大重要内容就是走队列,而一个队列的不规整程度是该队中最高的学生的身高与最矮的学生的身高差值的平方.现在要将$n$名参加军训的学生重新分成$k$个队列,每个队列 ...

  5. BZOJ - 2500 树形DP乱搞

    题意:给出一棵树,两个给给的人在第\(i\)天会从节点\(i\)沿着最长路径走,求最长的连续天数\([L,R]\)使得\([L,R]\)为起点的最长路径极差不超过m 求\(1\)到\(n\)的最长路经 ...

  6. HZOJ 20190727 T2 单(树上dp+乱搞?+乱推式子?+dfs?)

    考试T2,考试时想到了40pts解法,即对于求b数组,随便瞎搞一下就oxxk,求a的话,很明显的高斯消元,但考试时不会打+没开double挂成10pts(我真sb),感觉考试策略还是不够成熟,而且感觉 ...

  7. [BZOJ4011][HNOI2015]落忆枫音-[dp乱搞+拓扑排序]

    Description 传送门 Solution 假如我们的图为DAG图,总方案数ans为每个点的入度In相乘(不算1号点).(等同于在每个点的入边选一条边,最后一定构成一棵树). 然而如果加了边x- ...

  8. [OpenJudge90][序列DP+乱搞]滑雪

    滑雪 总时间限制: 1000ms 内存限制: 65536kB [描述] Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次 ...

  9. 【NOIP模拟赛】【乱搞AC】【奇技淫巧】【乘法原理】回文串计数

    回文串计数 (calc.pas/calc.c/calc.cpp) [题目描述] 虽然是一名理科生,Mcx常常声称自己是一名真正的文科生.不知为何,他对于背诵总有一种莫名的热爱,这也促使他走向了以记忆量 ...

随机推荐

  1. Python爬虫 Selenium与PhantomJS

    Selenium Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动化操作,不同是Sele ...

  2. 使用fiddler进程弱网测试

    使用fiddler手机需调整所连网络代理模式为手动,主机名与端口改为与电脑相同 打开Fiddler,Rules(规则)->Performance(性能)->勾选 Simulate Mode ...

  3. Clang调试CUDA代码

    Clang调试CUDA代码全过程 有空再进行编辑,最近有点忙,抱歉 使用的llvm4.0+Clang4.0的版本,依据的是上次发的llvm4.0和clang4.0源码安装的教程https://www. ...

  4. docker 入门(1)

    1,docker 的安装卸载 https://docs.docker.com/install/linux/docker-ce/ubuntu/ 2,docker中的基本概念 镜像(Image) 容器(C ...

  5. pg数据库data文件夹达到32G

    最近工作中遇到pg数据库data文件夹大小达到32G,大致的排查流程如下: 1.首先查看是哪个文件或者那些文件比较大: 2.根据文件的名称找到对应的数据表a: 3.确认数据表a中数据实际上只有3000 ...

  6. C语言 STL中qsort用法

    qsort函数包含在<stdlib.h>的头文件里. qsort函数声明如下:void qsort(void *base, size_t nmemb, size_t size, int(* ...

  7. matplotlib:python数据处理三剑客之一

    1.基本使用 import numpy as np import matplotlib.pyplot as plt import pandas as pd # 生成一系列x x = np.linspa ...

  8. 2019.9.27PHP基础

    PHP 基础语法规范: 1 <?php 开头 ?>结尾 2 php可以单独存在也可以和html等结合使用 3后缀名一般以.php结尾 php4,php5,php6,php7,phtml. ...

  9. 团队作业-Beta冲刺(周五)

    一. 这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/ 这个作业要求在哪里 https://edu.c ...

  10. Python核心技术与实战——二十|Python的垃圾回收机制

    今天要讲的是Python的垃圾回收机制 众所周知,我们现在的计算机都是图灵架构.图灵架构的本质,就是一条无限长的纸带,对应着我们的存储器.随着寄存器.异失性存储器(内存)和永久性存储器(硬盘)的出现, ...