出题idea
给定两个长度为\(n\)的序列--> \(a,b\), And then give you a \(k\)
你需要从n里面选出至少\(k\)个并将其排列成一个闭环
假设你选了\(m\)个
You need to get the max of this-->\(\sum_{i = 1}^{m} (a_{p_i} * i * (m - i + 1)) - \sum_{i = 2}^{m} \lvert b_i - b_{i - 1} \rvert\)
50对数据:
5个subtask
第一个sub:
放5对, 然后加上几个弱智一点的特判
\(O(2^n \times n!)\)
第二/三个sub:
\(O(n^2 \times k)\)
考虑dp,然后dp[i][j]表示考虑了前i个时间段, 当前已经选了j个, 而且第j个选的是i时的最大收益
\(dp[i][j] = max(dp[x][j - 1] + a[i] * w_j - abs(b[i] - b[x]))\)
第四个sub:
\(k = 1\), 然后我们只需要选择一个时间段, 此时\(m = 1\), 收益为\(a_p \times 1 \times (1 - 1 + 1) - 0\)
答案即为 \(max(a_i)\)

浙公网安备 33010602011771号