不难发现两边的活动是交替进行的,我们可以dp 先对时间离散化,设f[i,j]到时间i一个会场选j个活动,另一个会场最多有多少活动,那么f[i,j]=max(f[k,j]+s[k,i],f[k,j-s[k,i]]) 然后第一问的答案就是max(min(f[n*2,i],i)) 第二问是要求必选一个,那这一定形如中间一段必须选,向左向右分别dp 假设中间那段是(i,j)时最优值是g[i,j] 肯定要预处理时间i前一个会场选j个活动,另一个会场最多有多少活动和时间i到结束一个会场选j个活动,另一个会场…