力扣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;
      }
  };
相关推荐
林森lsjs1 分钟前
【日耕一题】3. 通过键盘输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
java·开发语言
啦啦啦啦啦zzzz2 分钟前
数据结构:二叉树的线索化
数据结构·算法
2401_8724187821 分钟前
算法入门:并查集(Disjoint Set / Union-Find):连通性问题的利器
算法
夜勤月22 分钟前
AQS 与 ThreadPoolExecutor 深度拆解:JDK 高并发底层设计精髓
android·java·开发语言
luj_176826 分钟前
R语言生态优势与学习曲线分析
c语言·开发语言·网络·经验分享·算法
phltxy29 分钟前
Spring AI 应用开发
java·人工智能·spring
码不停蹄的玄黓32 分钟前
Arthas 线上问题排查实战:CPU过高、频繁GC
java
Michaelwubo36 分钟前
swagger全集通+mock(prism)
java
计算机安禾43 分钟前
【算法分析与设计】第36篇:计算几何基础:凸包问题的分治与扫描线解法
大数据·人工智能·算法·机器学习·剪枝
货拉拉技术1 小时前
飞速发展的计算机视觉
人工智能·算法