题目描述
题解
非常神的一道dp题,感觉在考场上想出来是十分困难的。
首先对于第一问,先将区间离散,那么所有的时间就都变成 O(n) 级别的了。可以预处理出 sum[i][j] 表示时间i~j内有多少个活动。设 f[i][j] 表示到第i时间为止,第一个场地已经举办了j场活动时第二个场地最多举办多少场活动。
求f的过程可以用一个 O(n3) 的dp,转移方程为 f[i][j]=max{
f[i−1][j],f[k][j]+sum[k+1][
非常神的一道dp题,感觉在考场上想出来是十分困难的。
首先对于第一问,先将区间离散,那么所有的时间就都变成 O(n) 级别的了。可以预处理出 sum[i][j] 表示时间i~j内有多少个活动。设 f[i][j] 表示到第i时间为止,第一个场地已经举办了j场活动时第二个场地最多举办多少场活动。
求f的过程可以用一个 O(n3) 的dp,转移方程为 f[i][j]=max{
f[i−1][j],f[k][j]+sum[k+1][