T1 :最小值(min)题解 ——2019.10.15


思路:
对于 % 30 的数据,可以想到一个 Dp 方程:

其中dp[i]表示分割[1,i]的最大答案

代码:
#include<cstdio>
#include<cstring>
#include<algorithm>
const int Nt = ; const long long inf = 0x3f3f3f3f3f3f3f3f;
int ri() {
char c = getchar(); int x = , f = ; for(;c < '' || c > ''; c = getchar()) if(c == '-') f = -;
for(;c >= '' && c <= ''; c = getchar()) x = (x << ) + (x << ) - '' + c; return x * f;
}
int a[Nt], st[Nt], tp, n, A, B, C, D;
long long T[Nt << ], f[Nt], mx[Nt]; void Up(int i, long long x)
{for(T[i += Nt] = x; i >>= ;) T[i] = std::max(T[i << ], T[i << | ]);} long long Cal(long long x) {return ((A * x + B) * x + C) * x + D;} int main() {
freopen("min.in","r",stdin);
freopen("min.out","w",stdout);
n = ri(); A = ri(); B = ri(); C = ri(); D = ri();
for(int i = ;i <= n; ++i) a[i] = ri();
std::memset(T, -0x3f, sizeof(T));
f[] = ; mx[] = ; st[tp = ] = a[]; Up(, Cal(a[]));
for(int i = ;i <= n; ++i) {
f[i] = T[]; long long x = f[i];
for(;st[tp] > a[i + ] && tp;) x = std::max(x, mx[tp]), Up(tp--, -inf);
st[++tp] = a[i + ]; mx[tp] = x; Up(tp, x + Cal(st[tp]));
}
printf("%lld\n", f[n]);
return ;
}
T1 :最小值(min)题解 ——2019.10.15的更多相关文章
- C 题解———2019.10.16
		
现在很痛苦,等过阵子回头看看,会发现其实那都不算事. [题目描述]定义一个排列 a 的价值为满足|a[i]-i|<=1 的 i 的数量.给出三个正整数 n,m,p,求出长度为 n 且价值恰好为 ...
 - A 题解————2019.10.16
		
[题目描述] 对于给定的一个正整数n, 判断n是否能分成若干个正整数之和 (可以重复) ,其中每个正整数都能表示成两个质数乘积. [输入描述]第一行一个正整数 q,表示询问组数.接下来 q 行,每行一 ...
 - B 题解————2019.10.16
		
相信他说的话,但不要当真 [题目描述]有一个长度为 n 的自然数序列 a,要求将这个序列恰好分成至少 m 个连续子段. 每个子段的价值为该子段的所有数的按位异或.要使所有子段的价值按位与的结果最大,输 ...
 - 2019.10.15 CSP初赛知识点整理
		
初赛需要的知识点整理如下: (1)计算机的硬件组成与基本常识 (2)单位/进制的转换 (3)进制/逻辑运算相关 (4)概率与期望 (5)排序的各种性质 (6)简单数据结构的使用(栈.队列.链表等) ( ...
 - T2:中间值(median)———2019.10.15
		
代码: #include <bits/stdc++.h> int ri() { , f = ; ; ) + (x << ) - ' + c; return x * f; } ; ...
 - Fiborial 题解——2019.10.14
		
一看到这个题 就感觉...cao,, 什么东西...??! 然后就开始暴力求Fn 然鹅我并不会写高精(我太菜了) 只能求到大概10左右 在吧Fn给质因数分解 求出其因子个数 妄图找到什么有关的规律 但 ...
 - 忍者钩爪 ( ninja)  题解———2019.10.19
		
可以到这里测..嘿嘿嘿 题目: [问题 描述 ] 小 Q 是一名酷爱钩爪的忍者, 最喜欢飞檐走壁的感觉, 有一天小 Q 发现一个练习使用钩 爪的好地方,决定在这里大显身手. 场景的天花板可以被描述为一 ...
 - Datatables插件1.10.15版本服务器处理模式ajax获取分页数据实例解析
		
一.问题描述 前端需要使用表格来展示数据,找了一些插件,最后确定使用dataTables组件来做. 后端的分页接口已经写好了,不能修改.接口需要传入页码(pageNumber)和页面显示数据条数(pa ...
 - TIZ_c 第0周总结(2019/10/15-2019/10/22)工欲善其事必先利其器
		
TIZ_c 第0周总结(2019/10/15-2019/10/22)工欲善其事必先利其器 任务清单 给自己取一个酷酷的id,并选择1-2个喜欢的方向.(只是初步选择,后期可更改) 改下群名片.例如yo ...
 
随机推荐
- 基于 HTML5 换热站可视化应用
			
换热站是整个热网系统中最核心的环节,它将一侧蒸汽或高温水通过热交换器换成可以直接进入用户末端的采暖热水.换热站控制系统是集中供热监控系统的核心部分,换热站控制系统既可独立工作,也可以接受调度中心的监督 ...
 - CountDownEvent 信号类来等待直到一定数量的操作完成
			
当主程序启动时,创建一个 CountDownEvent 类的实例,在其构造函数中指定个数操作完成发出信号,当前为2个操作完成会发出信号. /// <summary> /// 创建 Coun ...
 - 关于.Net Core 前后端分离跨域请求时 ajax并发请求导致部分无法通过验证解决办法。
			
项目中有这样一个页面.页面加载的时候会同时并发6个ajax请求去后端请求下拉框. 这样会导致每次都有1~2个“浏览器预请求”不通过. 浏览器为什么会自动发送“预请求”?请看以面连接 https://b ...
 - Visual Studio Code创建C#项目
			
Visual Studio Code是一个支持跨平台的文本编辑器,同其他文本文本编辑器一样,不但占用磁盘空间小,性能也比较快:近几年由于不断的升级和许多开发者提供大量的插件,它已经成为了一个非常强大的 ...
 - SpringApplication到底run了什么(下)
			
在上篇文章中SpringApplication到底run了什么(上)中,我们分析了下面这个run方法的前半部分,本篇文章继续开工 public ConfigurableApplicationConte ...
 - Matlab混入模式(Mixin)
			
Mixin是一种类,这种类包含了其他类要使用的特性方法,但不必充当其他类的父类.Matlab无疑是支持多继承的.我们可以利用 Matlab 的这种特性,实现一种叫做 Mixin 的类.MixIn的目的 ...
 - php7.3升级后CI框架session失效session不能读取的问题
			
php7.3升级后CI框架session失效session不能读取的问题 框架ci3.0.2,php服务器从5升级到7.x后发现session失效了ci无法设置session的问题根本原因在,libr ...
 - 将MySQL升级到8.0.x后的遇到到错误及解决
			
一,安装的时遇到的坑 我下的是Mysql 8.0.13 地址:https://dev.mysql.com/downloads/mysql/ 下的是解压版(个人能不用安装就不想用安装版的强迫症(/▽\) ...
 - windows下搭建vue+webpack的开发环境
			
1. 安装git其右键git bash here定位比cmd的命令行要准确,接下来的命令都是利用git bash here.2. 安装node.js一般利用vue创建项目是要搭配webpack项目构建 ...
 - 记MacOS抹盘后--使用U盘安装MacOS实录
			
背景 纯属一时手贱,本想重装系统,结果直接把磁盘抹了,然后联网安装死活安不上.但这里仍然附上联网安装方法: 按键 描述 ⌘+R 重新安装您的 Mac 上装有的最新 macOS(建议操作). Optio ...