P9506 [BalkanOI 2018] Homecoming

题目背景

翻译自 BalkanOI 2018 Day1 T2「Homecoming」;由于洛谷远慢于 loj,因此将时间限制从 300ms 调整至 500ms。

题目描述

有 $N$ 门课程,分别编号为 $0$ 到 $N-1$。如果你 pass 了课程 $i$,你可以拿到 $A _ i$ 美刀。 有 $N$ 本教材,分别编号为 $0$ 到 $N-1$。$i$ 号教材的价格为 $B _ i$ 美刀。 如果你要 pass 课程 $i$,你需要购买编号为 $i, (i+1) \bmod N, (i+2) \bmod N, \cdots, (i+K-1) \bmod N$ 的课本。$K$ 为给定的常数。 你的目的是赚钱而非 pass 所有课程。请求出你最多能赚多少美刀。 ## 交互过程 本题只支持 C++ 语言使用函数交互测评。**选手代码不需要也不能包含 `homecoming.h`,也不需要实现 `main` 函数。** 选手程序需要实现如下函数: ``` long long int solve(int N, int K, int *A, int *B); ``` 在一次运行中这个函数可能会被调用多次。 ## 样例 调用 ``` solve(3, 2, [40, 80, 100], [140, 0, 20]) ``` 的返回值为 $60$。

输入格式

见「交互过程」。

输出格式

见「交互过程」。

说明/提示

### 数据范围及限制 令所有对 `solve` 函数的调用中 $N$ 的总和为 $S_N$,$NK$ 的总和为 $S_{NK}$。那么: - $1\le K\le N\le 2\times 10^6$ - $1\le S_N\le 2\times 10^6$ - $0\le A_i,B_i\le 10^9$ 详细子任务及附加限制如下表所示。 | 子任务编号 | 附加限制 | 分值 | | :-----------: | :-----------: | :-----------: | | $1$ | $1\le S_N\le 500$ | $13$ | | $2$ | $1\le S_N\le 5000$ | $18$ | | $3$ | $1\le S_{NK}\le 2\times 10^6$ | $31$ | | $4$ | 无附加限制 | $38$ |