【Leetcode】1665-1901

这个题目的本质要求就是优先考虑能使用完之后剩余更多的组合,依次考虑即可。
与此同时,在题解里也看到了一个不错的数学证明

假设两个组合[a1,m1]和[a2,m2]
如果优先考虑前者,则需要的能量为max(m1,m2+a1)=s1
优先考虑后者,则需要的能量为max(m2,m1+a2)=s2
假设m2+a1>=m1+a2,即m2-a2>=m1-a1
若m1>=m2,则s2=m1+a2<=m2+a1<max(m1,m2+a1)=s1
若m1<m2,则s1=m2+a1>=m1+a2=max(m2,m1+a2)=s2
即m2-a2>=m1-a1时,s1>=s2,即此时应该优先考虑2,
综上,对于所有的组合,应当优先的考虑差距较大的

posted @ 2024-07-10 21:08  TICSMC  阅读(5)  评论(0)    收藏  举报