力扣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;
      }
  };
相关推荐
无聊的小坏坏7 分钟前
力扣 239 题:滑动窗口最大值的两种高效解法
c++·算法·leetcode
WanderInk11 分钟前
揭秘Java协变返回类型:让你的API少一点强转,多一点优雅
java·后端
黎明smaly11 分钟前
【排序】插入排序
c语言·开发语言·数据结构·c++·算法·排序算法
paopaokaka_luck22 分钟前
基于SpringBoot+Vue的非遗文化传承管理系统(websocket即时通讯、协同过滤算法、支付宝沙盒支付、可分享链接、功能量非常大)
java·数据库·vue.js·spring boot·后端·spring·小程序
YuTaoShao23 分钟前
【LeetCode 热题 100】206. 反转链表——(解法一)值翻转
算法·leetcode·链表
iteye_993924 分钟前
让 3 个线程串行的几种方式
java·linux
YuTaoShao31 分钟前
【LeetCode 热题 100】142. 环形链表 II——快慢指针
java·算法·leetcode·链表
CCF_NOI.39 分钟前
(普及−)B3629 吃冰棍——二分/模拟
数据结构·c++·算法
找不到、了1 小时前
分布式理论:CAP、Base理论
java·分布式
天天摸鱼的java工程师1 小时前
2025已过半,Java就业大环境究竟咋样了?
java·后端