题目(团内题,外人查看不了,就不放链接了):
给定长度为 N 的整数序列 A,请在里面选出长度为 K 且不重叠的两段(要连续),满足和最大,求出最大值。
形式化的说,你要找到两个正整数 (i,j),满足 j≥i+k,j+k−1≤n,求出 Ai+Ai+1+⋯+Ai+k−1+Aj+Aj+1+⋯+Aj+k−1 的最大值。
格式如下:
N K
A_1 A_2 A_3 ... A_N
一个整数,表示答案。
6 2
9 3 -1 20 -3 3
31
9 2
-1000 3 2 -1000 9 8 -1000 5 2
24
10 5
1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000
10000000000
20 4
-3 9 -9 10 -3 -1 -3 3 7 -9 -4 -1 9 -9 2 -3 -5 -10 -8 -9
13
2 1
-1 -1
-2
对于 70% 的数据,保证 N≤20
对于 100% 的数据,保证 2×K≤N≤100,−109≤Ai≤109
K 是不为零的数字。
对于 100% 的数据,保证 2×K≤N≤2×105,−109≤Ai≤109
K 是不为零的数字
选择 {9,3}, {−1,20} 两段,和为 31。
两段连续子序列可以相邻,但是不能重叠,也就不能选择 ({−1,20},{20,−3}) 这一组方案。
选择 {9,8}, {5,2} 两段,和为 24。
这一组样例就是不相邻的解。
这题的动态转移方程是啥呀?暴力搜索 Extra 数据 通不过