P1006归零reset

时间限制 1000 ms内存限制 512 MiB通过率 100.0%
显示算法标签动态规划

【题目背景】

Gioush 大队的营地中有一条用于指引方向的星灯长廊。然而,星灯中记录的旧星轨逐渐发生了偏移,为了重新校准整条长廊,Ehundategh 决定清除所有星灯中残留的旧星轨,使它们全部归零

【题目描述】

星灯长廊中共有 nn 盏星灯,从左到右依次编号为 1n1\sim n。每盏星灯都有一个独立的控制核心,Ehundategh 可以向其中注入归零能量,清除它记录的全部旧星轨。由于不同星灯中残留的星辉强度并不相同,单独归零第 ii 盏星灯需要消耗 aia_i 点能量。

为了让星光能够沿着长廊连续传递,每两盏相邻的星灯之间都连接着一条共鸣回路。对于任意 1i<n1\leq i<n,Ehundategh 也可以直接启动连接第 ii 盏与第 i+1i+1 盏星灯的共鸣回路,使两盏星灯的控制核心同时归零。启动这条共鸣回路需要消耗 bib_i 点能量,这一消耗不一定等于分别归零两盏星灯所需能量之和。

一盏星灯完成归零以后,就会立刻断开与旧星轨网络的联系,等待 Ehundategh 写入新的星轨。此时,再次向这盏星灯注入归零能量可能会破坏它的控制核心。因此,在整个校准过程中,每盏星灯都必须被归零恰好一次:如果一盏星灯已经被单独归零,或者已经与相邻的一盏星灯同时归零,那么它不能再参与之后的任何归零操作。

Ehundategh 可以任意决定每次归零操作的方式和先后顺序,只要最终所有星灯都恰好完成一次归零。由于维持星灯长廊运转的能量十分宝贵,他希望完成校准所消耗的能量尽可能少。

现在,你需要告诉 Ehundategh,将这 nn 盏星灯全部归零,最少需要消耗多少点能量。

【输入格式】

从文件 reset.in\textbf{\textit{reset.in}} 中读入数据。

第一行一个正整数 nn,表示星灯的数量。

第二行 nn 个正整数,第 ii 个整数 aia_i 表示单独归零第 ii 盏星灯所需的能量。

第三行 n1n-1 个正整数,第 ii 个整数 bib_i 表示同时归零第 ii 盏和第 i+1i+1 盏星灯所需的能量。

【输出格式】

输出到文件 reset.out\textbf{\textit{reset.out}} 中。

输出一行一个整数,表示将所有星灯归零所需的最小能量。

【样例 1 输入】

54 7 2 9 58 3 10 6

【样例 1 输出】

13

【说明/提示】

【样例 1 解释】

可以先同时归零第 1,21,2 盏星灯,消耗 88 点能量;再单独归零第 33 盏星灯,消耗 22 点能量;最后同时归零第 4,54,5 盏星灯,消耗 66 点能量。总消耗为 1616

但更优的方案是:单独归零第 11 盏星灯,同时归零第 2,32,3 盏星灯,同时归零第 4,54,5 盏星灯,总消耗为 4+3+6=134+3+6=13。可以证明不存在更优方案。

【样例 2】

见选手目录下的 reset/reset2.in\textbf{\textit{reset/reset2.in}}reset/reset2.ans\textbf{\textit{reset/reset2.ans}}

该组样例符合测试点 9129\sim 12 的数据范围。

【样例 3】

见选手目录下的 reset/reset3.in\textbf{\textit{reset/reset3.in}}reset/reset3.ans\textbf{\textit{reset/reset3.ans}}

该组样例符合测试点 132013\sim 20 的数据范围。

【数据范围】

测试点编号nn特殊性质
141\sim 420\leq 20
585\sim 8103\leq 10^3
9129\sim 12106\leq 10^6
132013\sim 20106\leq 10^6

特殊性质:对于任意 1i<n1\leq i<n,均有 bi=ai+ai+1b_i=a_i+a_{i+1}

对于 100%100\% 的数据,保证:1n1061\leq n\leq 10^61ai,bi1091\leq a_i,b_i\leq 10^9

【题解】

已公开 1 篇题解,官方题解会优先显示。

查看题解