第一题就把图建起来就可以; 第二题用暴力遍历,因为最大也才 2^20 所以没问题; 第三题排序之后从最小的补到倒数第二小,然后再把两个倒数第二小补到倒数第三小,直到m == 0,最多O(n),所以总共 O(n lg n); 最后一题动态规划,我只做出来O(n^2 m) 不过也够快了。 dp[ i ][ j ] 代表前 i 个人分 j 组的最小极差和,那么要求的就是 dp[ n ][ m ]。然后转移就是 dp[ i ][ j ] = min (dp [ k ][ j - 1] + maxDiff[ k + 1 ][ i ]),k 从 j - 1 到 i - 1,maxDiff [ k + 1 ][ i ] 数组表示从第 k + 1 到 i 这些人的极差,这个二维数组最先算一下需要O(nm) , 然后把 dp 做出来要 O(n^2 m)。

相关推荐

02-05 08:49
已编辑
武汉大学 Web前端
野猪不是猪🐗:36k和36k之间亦有差距,ms的36k和pdd的36k不是一个概念
点赞 评论 收藏
分享
昨天 09:35
门头沟学院 运营
点赞 评论 收藏
分享
牛客网
牛客企业服务