竞赛
考级
考虑我们如何将答案最大化:对于每个x,一定是选择(一个最大的s)+(x-1个最大的a)或者x个最大的a,可以使答案最优 那么具体怎么实现呢 我们先把数组按照a排序 我们用sum[i]表示a数组的前i项的和,q[i]表示s数组的前i项的最大值,h[i]表示a[i]2+s[i]后i项的最大值,对于每个x,他的答案就是max(sum[x]+2q[x],sum[x-1]+h[x])
思路:这道题明显贪心可以做,但是路程远近不好处理,所以需要稍加判断,我们在原题的基础上直接去用推销产品的疲劳值去排序,然后再从前到后和从哪后到前的顺序去排序每次走的路程(本题的路程分为两种情况: 1. 先走mmm再走nnn,m>nm>nm>n、那么总路程为mmm; 2. 先走mmm再走nnn,m<nm<nm<n,那么总路程就为nnn);在以上的基础上去处理答案即可; AC代码 欢迎加入团队
提交答案之后,这里将显示提交结果~