loj#P2483. 「CEOI2017」Building Bridges

「CEOI2017」Building Bridges

题目描述

nn 根柱子依次排列,每根柱子都有一个高度。第 ii 根柱子的高度为 hih_i
现在想要建造若干座桥,如果一座桥架在第 ii 根柱子和第 jj 根柱子之间,那么需要 (hihj)2(h_i-h_j)^2 的代价。
在造桥前,所有用不到的柱子都会被拆除,因为他们会干扰造桥进程。第 ii 根柱子被拆除的代价为 wiw_i,注意 wiw_i 不一定非负,因为可能政府希望拆除某些柱子。
现在政府想要知道,通过桥梁把第 11 根柱子和第 nn 根柱子连接的最小代价。注意桥梁不能在端点以外的任何地方相交。

输入格式

第一行一个正整数 nn
第二行 nn 个空格隔开的整数,依次表示 h1,h2,,hnh_1,h_2,\cdots,h_n
第三行 nn 个空格隔开的整数,依次表示 w1,w2,,wnw_1,w_2,\cdots,w_n

输出格式

输出一行一个整数表示最小代价,注意最小代价不一定是正数。

6
3 8 7 1 6 6
0 -1 9 1 2 0
17

数据范围与提示

对于 100%100\% 的数据,有 2n105;0hi,wi1062\le n\le 10^5;0\le h_i,\vert w_i\vert\le 10^6

  • 子任务 1(30%30\%):有 n1000n\le 1000
  • 子任务 2(30%30\%):有 wi20\vert w_i\vert \le 20,保证存在一种最优方案,除了头尾两根柱子外,最多只保留两根柱子;
  • 子任务 3(40%40\%):无特殊限制。