首先考虑n等于m的情况,这时候每个数字都会选,则进项确定,不确定的是代价(被减去的值),这时候策略是比较简单的,代价(bi)越大的值越先选……。 然后考虑n=m+1时候的情况,这个问题相比前一个问题就是要剔除一个值了,这时候可以看成一个递增的问题,即先处理m个,再考虑最后一个。这时候先把前m个值按照bi排序,再计算第m+1个元素取代第i个元素的增益,如果最大增益能大于0,则取代并更新备用的数组,否则备用数组不动(这部分就算按照一定策略,时间复杂度o(n)),备用数组就是我们选择的m个数,按照第一个问题的策略,能得出此时的结果。 最后,考虑n>m+1,这时候能不能分解成一系列n=m+1的子问题???如果能分解的话,就按照前一步的步骤就可以计算了
点赞 评论

相关推荐

不愿透露姓名的神秘牛友
06-13 19:30
化身华黑 今天询问对接人审批情况,结果被告知没HC了 云计算 
苦闷的柠檬精allin实习:主管面结束后hr每周保温一次,结果前几天和我说没hc了,我也化身华黑子了
投递华为等公司8个岗位 > 华为求职进展汇总
点赞 评论 收藏
分享
05-30 12:03
山西大学 C++
offer来了我跪着接:不是骗子,等到测评那一步就知道为啥这么高工资了
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务