区间dp,绝对值不等式
104. 货仓选址
在一条数轴上有 N 家商店,它们的坐标分别为 A1∼AN。
现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。
为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。
输入格式
第一行输入整数 N。
第二行 N 个整数 A1∼AN。
输出格式
输出一个整数,表示距离之和的最小值。
数据范围
1≤N≤100000,
0≤Ai≤40000
输入样例:
4
6 2 9 1
输出样例:
12
#include <bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int a[N];
int n;
int res;
int main()
{cin>>n;for(int i=0;i<n;i++)cin>>a[i];sort(a,a+n);for(int i=0;i<n;i++)res+=abs(a[i]-a[n/2]);cout<<res<<endl;return 0;
}
320. 能量项链
在 Mars 星球上,每个 Mars 人都随身佩带着一串能量项链,在项链上有 N 颗能量珠。
能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数。
并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标记。
因为只有这样,通过吸盘(吸盘是 Mars 人吸收能量的一种器官)的作用,这两颗珠子才能聚合成一颗珠子,同时释放出可以被吸盘吸收的能量。
如果前一颗能量珠的头标记为 m,尾标记为 r,后一颗能量珠的头标记为 r,尾标记为 n,则聚合后释放的能量为 m×r×n(Mars 单位),新产生的珠子的头标记为 m,尾标记为 n。
需要时,Mars 人就用吸盘夹住相邻的两颗珠子,通过聚合得到能量,直到项链上只剩下一颗珠子为止。
显然,不同的聚合顺序得到的总能量是不同的,请你设计一个聚合顺序,使一串项链释放出的总能量最大。
例如:设 N=4,4 颗珠子的头标记与尾标记依次为 (2,3)(3,5)(5,10)(10,2)。
我们用记号 ⊕ 表示两颗珠子的聚合操作,(j⊕k) 表示第 j,k 两颗珠子聚合后所释放的能量。则
第 4、1 两颗珠子聚合后释放的能量为:(4⊕1)=10×2×3=60。
这一串项链可以得到最优值的一个聚合顺序所释放的总能量为 ((4⊕1)⊕2)⊕3)=10×2×3+10×3×5+10×5×10=710。
输入格式
输入的第一行是一个正整数 N,表示项链上珠子的个数。
第二行是 N 个用空格隔开的正整数,所有的数均不超过 1000,第 i 个数为第 i 颗珠子的头标记,当 i<N 时,第 i 颗珠子的尾标记应该等于第 i+1 颗珠子的头标记,第 N 颗珠子的尾标记应该等于第 1 颗珠子的头标记。
至于珠子的顺序,你可以这样确定:将项链放到桌面上,不要出现交叉,随意指定第一颗珠子,然后按顺时针方向确定其他珠子的顺序。
输出格式
输出只有一行,是一个正整数 E,为一个最优聚合顺序所释放的总能量。
数据范围
4≤N≤100,
1≤E≤2.1×109
输入样例:
4
2 3 5 10
输出样例:
710
#include <bits/stdc++.h>
using namespace std;
const int N = 210, INF = 0x3f3f3f3f;
int n;
int w[N];
int f[N][N];
int main()
{cin >> n;for (int i = 1; i <= n; i++){cin >> w[i];w[i + n] = w[i];}for (int len = 3; len <= n + 1; len++){for (int l = 1; l + len - 1 <= n * 2; l++){int r = l + len - 1;for (int k = l + 1; k < r; k++)f[l][r] = max(f[l][r], f[l][k] + f[k][r] + w[l] * w[k] * w[r]);}}int res = 0;for (int l = 1; l <= n; l++)res = max(res, f[l][l + n]);cout << res << endl;return 0;
}
区间dp,绝对值不等式相关推荐
- ACM - 贪心 - 基础(区间问题 + Huffman树 + 排序不等式 + 绝对值不等式 + 推公式)
贪心 经典母题 1.区间问题 AcWing 905. 区间选点 AcWing 908. 最大不相交区间数量 AcWing 906. 区间分组 AcWing 907. 区间覆盖 2.Huffman树 A ...
- UVA10003 切木棍 Cutting Sticks(区间DP、细节)
整理的算法模板合集: ACM模板 本题其实就是一个区间DP 的模板题,总长度为len,有n个切割点,也就是说能被切割成n+1段,所以左边界是0,有边界是n + 1,所以答案就是f[0][n + 1]. ...
- Codevs 3002 石子归并 3(DP四边形不等式优化)
3002 石子归并 3 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 题目描述 Description 有n堆石子排成一列,每堆石子有一个重量w[i], 每次 ...
- (详解)区间DP —— 平行四边形优化
本文从普通区间dp.平行四边形优化区间dp.例题三个步骤,详细分析了区间动态规划!!! 编写不宜,希望各位兄台耐心阅读完整!!! 1.区间dp 区间dp其实就是一种建立在线性结构上的整体上对区间的动态 ...
- 绝对值不等式的常见形式及解法
绝对值不等式解法的基本思路是:去掉绝对值符号,把它转化为一般的不等式求解,转化的方法一般有:(1)绝对值定义法:(2)平方法:(3)零点区域法.常见的形式有以下几种. 1. 形如不等式: 利用绝对值的 ...
- 绝对值不等式(贪心)
文章目录 前言 一.贪心 二.AcWing 104. 货仓选址 本题解析 AC代码 三.时间复杂度 前言 复习acwing算法基础课的内容,本篇为讲解基础算法:贪心--绝对值不等式,关于时间复杂度:目 ...
- 贪心算法_排队不等式_绝对值不等式_推公式
文章目录 排队不等式 原题链接 题目大意: 思路: 证明: 代码: 绝对值不等式 原题链接 题目大意: 思路: 证明: 代码: 推公式 原题链接 题目大意 思路: 证明: 代码: 排队不等式 原题链接 ...
- Day-1 货仓选址(绝对值不等式)
主要考点:绝对值不等式 结论:在一个长度为n的区间,中间值x到区间各点的距离之和最短.若n为奇数,则x为中位数,若n为偶数,则x为中间两个中的任意一个. 证明: 渐进式取中. 题目描述 在一条数轴上有 ...
- 【acwing】104. 货仓选址*(贪心|绝对值不等式)
穿越隧道 绝对值不等式 如果x在a~b区间外,∣a−x∣+∣b−x∣>=∣a−b∣|a - x| + |b - x| >= |a-b|∣a−x∣+∣b−x∣>=∣a−b∣(当x在a, ...
- 104 货仓选址(绝对值不等式)
1. 问题描述: 在一条数轴上有 N 家商店,它们的坐标分别为 A1∼AN.现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品.为了提高效率,求把货仓建在何处,可以使得货仓到每家 ...
最新文章
- 运行cmd直接进入指定目录下的命令
- LIBSVM的使用方法以及参数注释总结
- 使用delphi 开发多层应用(十三)使用Basic4android 直接访问kbmMW server
- 使用C#操作Oracle Spatial的SDO_GEOMETRY对像(读取和写入)
- 调整自己,必须调整自己了
- oracle xp安装详细步骤
- 学习完windows网络编程第一章后做的UDPTest程序
- qt 的进程间共享内存 QSharedMemory
- 一个例子“入坑“布谷鸟算法(附完整py代码)
- 数据包络分析DEA有哪些指标?
- Java常量池详解:字符串常量池、Class常量池、运行时常量池 三者关系
- 对强化学习理解及其与有监督学习和无监督学习的比较
- 叉乘点乘混合运算公式_【“数”你好看】对数运算(Logarithm)
- 火狐浏览器代理设置:
- Vs2008调试慢的问题
- 数据中心白皮书 2022东数西算下数据中心高性能计算的六大趋势八大技术
- delaunay三角剖分与delaunay四面体
- 推荐几个练习键盘打字的工具【自己用过的】
- 【转载】spring-batch入门实践
- 【腾讯开发者大会】天刀手游开发历程(笔记)