题目背景

  $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_线程读写操作<一>

    线程读写操作 import threading,random,queue q = queue.Queue() alist=[] def shengchan(): for i in range(10): ...

  2. Django进阶(一)

    目录 choice参数 MTV与MVC模型 Ajax Ajax传json数据 Ajax传file数据 contentType前后端传输数据编码 ajax + sweetalert 序列化组件 补充 c ...

  3. python cv2截取不规则区域图片

    知识掌握 cv2.threshold()函数: 设置固定级别的阈值应用于多通道矩阵,将灰度图像变换二值图像,或去除指定级别的噪声,或过滤掉过小或者过大的像素点. Python: cv2.thresho ...

  4. IDEA打开光标是粗黑色,backspace键、insert键点击无效的解决办法

    问题描述:打开IDEA的编译器之后,界面显示的光标变粗,点击backspace键和insert键盘之后无效 解决方法:打开File——Settings——Plugins,在右侧的搜索栏中搜索IdeaV ...

  5. 配置jupyter notebook网页浏览

    上一篇博文已经介绍安装了Anaconda3:https://www.cnblogs.com/hello-wei/p/10233192.html jupyter notebook [I 11:33:11 ...

  6. Chrome OS 更新新版本可让Linux访问USB连接的Android设备

    谷歌再次为Chrome OS带来了重大版本更新,使版本号达到了75.本次更新的一大亮点就是允许在Chrome OS上运行的Linux能够识别通过USB方式连接的Android设备,能够让用户使用Lin ...

  7. particlesjs

    今天发现一个粒子动画的插件下个笔记做个备用: <!DOCTYPE html> <html lang="en"> <head> <meta ...

  8. @Mapper和@Repository的区别

    参考博客地址 https://www.cnblogs.com/wangshen31/p/8735037.html 相同点 两个都是注解在Dao上 不同 @Repository需要在Spring中配置扫 ...

  9. 498. Diagonal Traverse

    题目思路 题目来源 C++实现 class Solution { public: vector<int> findDiagonalOrder(vector<vector<int ...

  10. Android编程使用httpHelper不执行错误-20171017

    解决方法:将显示等代码(例如setText()和setAdapter()等方法)从主函数onCreate()中移到httpHelper.get()函数中:   原因:有可能是主线程运行的较快,而连接服 ...