当前位置: 首页> 娱乐> 八卦 > 力扣3273.对Bob造成的最少伤害

力扣3273.对Bob造成的最少伤害

时间:2025/7/20 2:40:51来源:https://blog.csdn.net/Pisasama/article/details/141772469 浏览次数:0次

力扣3273.对Bob造成的最少伤害

  • 贪心

    • 考虑每个敌人对答案的贡献
    • 对于敌人AB:先杀A所受伤害为tA * dA + (tA + tB) * dB
      • 先杀B所受伤害为tB * dB + (tA + tB) * dA
      • 因此如果tA * dB < tB * dA
      • 就先杀A
  •   class Solution {public:long long minDamage(int power, vector<int>& damage, vector<int>& health) {int n = health.size();vector<pair<int,int>> a(n);for(int i=0;i<n;i++)a[i] = {(health[i] - 1) / power + 1,damage[i]};//按照公式排序ranges::sort(a,[](const auto &p,const auto &q){return p.first * q.second < q.first *p.second;});//s记录累积时间long long ans = 0,s = 0;//对于每个敌人的贡献 = 存活天数 * 伤害for(auto &[k,d] : a){s += k;ans += s * d;}return ans;}};
    
关键字:力扣3273.对Bob造成的最少伤害

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: