本题与「交替步长最大和」描述的计算任务一致。按输入格式读入数据后,沿用原题解的算法即可。
核心思路:
路径在确定起点和第一步的步长后,后续经过的下标完全确定。可以根据“下一步应该使用哪个步长”设计两个状态。
设:
给定序列 A1…An 与步长 p,q。从任意起点 i 出发,第一步选 p 或 q,之后交替使用另一歩长,沿下标增大方向走,越界则停。路径价值和为经过下标的 A 值之和。求所有起点与首步选择下的最大价值和。
1≤T≤105,1≤n≤2×105,1≤p,q≤n,−109≤Ai≤109,所有 n 之和不超过 2×105。
第一行 T。每组第一行 n,p,q,第二行 n 个整数 Ai。
每组一行一个整数,表示最大路径价值和。
输入
3
5 1 2
1 2 3 4 5
6 2 3
5 -10 4 3 -2 8
4 2 2
-1 7 -3 5
输出
12
17
12
说明
按题意模拟计算得到。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.