力扣2861.最大合金数

力扣2861.最大合金数

  • 对每一台机器都做一次二分答案

cpp 复制代码
  class Solution {
  public:
      int maxNumberOfAlloys(int n, int k, int budget, vector<vector<int>>& composition, vector<int>& stock, vector<int>& cost) {
          int res = 0;
          int mx = ranges::min(stock) + budget;
          for(auto &comp : composition)
          {
              auto check = [&](long long num) -> bool
              {
                  long long ans=0;
                  for(int i=0;i<n;i++)
                      if(stock[i] < comp[i] * num)
                      {
                          ans += (comp[i] * num - stock[i]) * cost[i];
                          if(ans > budget) return false;
                      }
                  return true;
              };
              int l = res,r = mx + 1;
              while(l < r)
              {
                  int mid = l + r + 1>> 1;
                  if(check(mid)) l = mid;
                  else r = mid - 1;
              }
              res = l;
          }
          return res;
      }
  };
相关推荐
JouJz16 分钟前
设计模式之代理模式:掌控对象访问的优雅之道
java·spring·设计模式·系统安全·代理模式
lovix1217 分钟前
java进阶(三):单例、工厂、模版方法与代理模式详解
java·开发语言
今天背单词了吗98020 分钟前
算法学习笔记:16.哈希算法 ——从原理到实战,涵盖 LeetCode 与考研 408 例题
笔记·学习·算法
ta叫我小白31 分钟前
Spring Boot 设置滚动日志logback
java·spring boot·spring·logback
永卿00136 分钟前
设计模式-观察者模式
java·前端·设计模式
C雨后彩虹41 分钟前
行为模式-观察者模式
java·观察者模式·设计模式
天天摸鱼的java工程师41 分钟前
百万数据导出Excel:从新手坑到老鸟方案
java·后端·面试
愿你天黑有灯下雨有伞41 分钟前
从数据库到播放器:Java视频续播功能完整实现解析
java·数据库·音视频
hqxstudying42 分钟前
Java行为型模式---观察者模式
java·开发语言·windows·观察者模式
DKPT1 小时前
Java观察者模式实现方式与测试方法
java·笔记·学习·观察者模式·设计模式