力扣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;
      }
  };
相关推荐
罗湖老棍子几秒前
Knight Moves(信息学奥赛一本通- P1257)
c++·算法·bfs
pyniu5 分钟前
项目实站day7--功能之营业额统计,用户数量统计
java·开发语言·spring boot·spring
一周困⁸天.15 分钟前
K8S-NetworkPolicy
java·开发语言
真上帝的左手17 分钟前
3. 代码管理-构建工具-Maven
java·maven
学学学无无止境20 分钟前
力扣-从前序与中序遍历序列构造二叉树
leetcode
JIngJaneIL33 分钟前
基于Java旅游信息推荐系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot·旅游
梦未34 分钟前
Java多态性与类生命周期
java
CryptoRzz35 分钟前
对接印度股票市场数据 (India api) 实时k线图表
java·开发语言·python·区块链·maven
AuroraWanderll1 小时前
C++11(二)核心突破:右值引用与移动语义(上)
c语言·数据结构·c++·算法·stl