\(\color{#0066ff}{ 题目描述 }\)

给定一个长度为n的序列,至多将序列分成m+1段,每段序列都有权值,权值为序列内两个数两两相乘之和。求序列权值和最小为多少?

\(\color{#0066ff}{输入格式}\)

第一行两个数 \(n, m\),

第二行为序列

\(\color{#0066ff}{输出格式}\)

输出一行为最小权值和

\(\color{#0066ff}{输入样例}\)

4 1
4 5 1 2 4 2
4 5 1 2

\(\color{#0066ff}{输出样例}\)

17

2

\(\color{#0066ff}{数据范围与提示}\)

\(n \le 500, a_i \le 20\)

\(\color{#0066ff}{题解}\)

考虑一段的贡献,就是\(\sum\)任意两个数乘机

其实就是完全平方式, 所有数的和的平方减去所有数的平方和就是2倍的两两乘积之和

再除以2就是区间的贡献

不难设出状态\(f[i][j]\)为前i个数,分成j段的最小权值和

那么转移\(f[i][j]=min\{f[k][j-1]+((s[i]-s[k])\times(s[i]-s[k])-(p[i]-p[k]))/2\}\)

通过打表发现,决策点是单调的,于是可以用四边形不等式进行优化

记录一下决策点的位置,可以优化成\(O(N^2)\)的复杂度

#include<bits/stdc++.h>
#define LL long long
LL in() {
char ch; LL x = 0, f = 1;
while(!isdigit(ch = getchar()))(ch == '-') && (f = -f);
for(x = ch ^ 48; isdigit(ch = getchar()); x = (x << 1) + (x << 3) + (ch ^ 48));
return x * f;
}
const int maxn = 505;
const int inf = 0x3f3f3f3f;
int f[maxn][maxn], s[maxn], p[maxn], a[maxn], q[maxn][maxn];
int n, k;
int main() {
n = in(), k = in();
for(int i = 1; i <= n; i++) {
s[i] = s[i - 1] + (a[i] = in());
p[i] = p[i - 1] + a[i] * a[i];
f[i][0] = (s[i] * s[i] - p[i]) >> 1;
}
for(int i = 1; i <= k; i++) q[n + 1][i] = n;
for(int j = 1; j <= k; j++) {
for(int i = n; i >= 1; i--) {
f[i][j] = inf;
for(int v = q[i][j - 1]; v <= std::min(i, q[i + 1][j]); v++) {
int now = f[v][j - 1] + (((s[i] - s[v]) * (s[i] - s[v]) - (p[i] - p[v])) >> 1);
if(f[i][j] > now) f[i][j] = now, q[i][j] = v;
}
}
}
printf("%d", f[n][k]);
return 0;
}

SP18637 LAWRENCE - Lawrence of Arabia的更多相关文章

  1. WC2019 填坑记

    2019年1月8日 1.Luogu P2147 [SDOI2008]洞穴勘测 (LCT模板题&LCT学习) 2019年1月9日 2.LuoguP3203 [HNOI2010]弹飞绵羊  (LC ...

  2. (转)TCP注册端口号大全

    分类: 网络与安全 cisco-sccp 2000/tcp Cisco SCCPcisco-sccp 2000/udp Cisco SCCp# Dan Wing <dwing&cisco ...

  3. 【Python3爬虫】当爬虫碰到表单提交,有点意思

    一.写在前面 我写爬虫已经写了一段时间了,对于那些使用GET请求或者POST请求的网页,爬取的时候都还算得心应手.不过最近遇到了一个有趣的网站,虽然爬取的难度不大,不过因为表单提交的存在,所以一开始还 ...

  4. Mid-Atlantic 2008 Lawrence of Arabia /// 区间DP oj21080

    题目大意: 输入n,m 输入n个数 将n个数切割m次分为m+1段,使得各段的Strategic Value总和最小 一组数a b c d的SV值为 a*b + a*c + a*d + b*c + b* ...

  5. 【HDOJ】【2829】Lawrence

    DP/四边形不等式 做过POJ 1739 邮局那道题后就很容易写出动规方程: dp[i][j]=min{dp[i-1][k]+w[k+1][j]}(表示前 j 个点分成 i 块的最小代价) $w(l, ...

  6. HDU 2829 Lawrence(动态规划-四边形不等式)

    Lawrence Problem Description T. E. Lawrence was a controversial figure during World War I. He was a ...

  7. hdu 2829 Lawrence(四边形不等式优化dp)

    T. E. Lawrence was a controversial figure during World War I. He was a British officer who served in ...

  8. HDU 2829 - Lawrence - [斜率DP]

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2829 T. E. Lawrence was a controversial figure during ...

  9. HDOJ 2829 Lawrence

    四边形不等式优化DP Lawrence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

随机推荐

  1. python第二十三天-----Tornado

    Tornado是一个轻量级完整的web框架,在Linux系统下它会使用epoll,是一个异步非阻塞的web服务器框架,对于实时应用来说很理想,想想同是异步非阻塞的nginx的残暴程度就知道了 1.路由 ...

  2. Oracle 备份与恢复基础

    Oracle 备份与恢复基础 :三思笔记 备份与恢复 A whole database backup is either a consistent backup or an inconsistent ...

  3. JAVA web 相关知识点

    1: web的三个核心标准: URL: http   VS  https HTTP:  通信协议,客户端/服务器端信息交互方式; 特点是无状态:                 HTML: 2: HT ...

  4. CPU, PSU, SPU的区别

    It all started in January 2005 with Critical Patch Updates (CPU).  Then Patch Set Updates (PSU) were ...

  5. chosen.jquery插件的使用

    前几天在jQuery官网看到了插件里面有400多个插件,看了下效果都很好,以后项目里面难免会用到.于是下了个决定,有时间把官网的插件都研究下,并简单介绍他的用法,方便以后的使用. 下面将要提到的是jQ ...

  6. Java元注解,简单案例

    [注解] 程序中有 注释 和注解 * 注释:给开发人员. * 注解:给计算机看的. 注解使用:学习框架支持注解开发. [JDK提供的注解] @Override :描述方法的重写. @SuppressW ...

  7. JDBC MySQL 实例之 用户管理系统

    1 Java 和 MySQL 怎么建立连接 2 通过Java怎么对数据库进行操作 package day01; import java.sql.Connection; import java.sql. ...

  8. mysql 5.7.11 源码安装

    mysql5.711安装 1.安装boost包下载地址http://sourceforge.net/projects/boost/files/boost/ 2.解压boost_1_59_0.tar.g ...

  9. 正割、余割、正弦、余弦、正切、余切之间的关系的公式 sec、csc与sin、cos、tan、cot之间的各种公式

    1.倒数关系 tanα ·cotα=1 sinα ·cscα=1 cosα ·secα=1 2.商数关系 tanα=sinα/cosα cotα=cosα/sinα 3.平方关系 sinα²+cosα ...

  10. JavaPersistenceWithHibernate第二版笔记-第六章-Mapping inheritance-005Table per subclass with joins(@Inheritance(strategy = InheritanceType.JOINED)、@PrimaryKeyJoinColumn、)

    一.结构 The fourth option is to represent inheritance relationships as SQL foreign key associations. Ev ...