- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
这是混合牛奶问题
Merry Milk Makers 公司从农民那里购买牛奶,将其包装成极具吸引力的 1 瓶和 2 瓶装,然后将这些牛奶卖给杂货店,这样我们每个人都可以享用美味的麦片和牛奶来开始新的一天。
由于牛奶包装是一项很难赚钱的行业,因此保持尽可能低的成本非常重要。帮助 Merry Milk Makers 以最便宜的方式购买农民的牛奶。 MMM 公司拥有一个非常有才华的营销部门,并且准确地知道他们每天需要为客户包装多少牛奶。
该公司与几家农场主签订了契约(Contract),他们可以从这些农场主那里购买牛奶,并且每个农场主都有(可能)不同的价格向包装厂出售牛奶。当然,一群奶牛每天只能产那么多牛奶,所以农民们已经知道他们有多少牛奶可用。
每天,Merry Milk Makers 可以从每个农民那里购买整数单位的牛奶,这个数字总是小于或等于农民的限制(并且可能是那个农民的全部产品,没有生产,或两者之间的任何整数)。
给定:
The Merry Milk Makers 的每日牛奶需求量每个农民每单位牛奶的成本每个农民可获得的牛奶量计算 Merry Milk Makers 必须花费的最低金额才能满足他们对牛奶的日常需求。
第 1 行:两个整数,N 和 M。
第一个值 N (0 <= N <= 2,000,000) 是 Merry Milk Makers 每天需要的牛奶量。第二个 M,(0 <= M <= 5,000)是他们可以从农民那里购买的数量。
第 2 行到 M+1:
接下来的 M 行每行包含两个整数:Pi 和 Ai。Pi (0 <= Pi <= 1,000) 是农民 i 收取的美分价格。Ai (0 <= Ai <= 2,000,000) 是农夫 i 每天可以卖给 Merry Milk Makers 的牛奶量。
我的解决方案:
我的解决方案是将农民的牛奶价格和他们拥有的牛奶数量存储在 HashMap
中。只要还有牛奶要买,我就会将 HashMap
中的最低价 * 最低价牛奶的数量添加到成本中,因为我对 ArrayList
储存牛奶的成本。因为购买的牛奶可能比需要的多,所以我有一个 if 语句
检查如果购买的牛奶比需要的多,就会减去额外的费用。然后我从 ArrayList
代码:
该代码适用于所有测试用例,但最后一个测试用例除外,在该测试用例中有太多数据无法放入问题中,因此我将其链接到 Google 文档。
输入和输出:https://docs.google.com/document/d/10I3b0z17kP_LZzD2lBlH-Igoe6NPybZleD9tNYonqSQ/edit?usp=sharing
/*
ID: henry.d2
LANG: JAVA
TASK: milk
*/
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class milk
{
public static void main(String[] args) throws IOException
{
BufferedReader br = new BufferedReader(new FileReader("milk.in"));
String[] components = br.readLine().split(" ");
int n = Integer.parseInt(components[0]); // Get the amount of milk that Merry Milk Makers wants per day (N)
int m = Integer.parseInt(components[1]); // Get the number of farmers that they may buy from (M)
Map<Integer, Integer> farmerAndPrice = new HashMap<Integer, Integer>(); // HashMap that stores the prices of milk and quantities
List<Integer> prices = new ArrayList<Integer>(); // ArrayList that stores the prices for milk
// Read in P(i) (The price in cents that farmer i charges) and A(i) (The amount of milk that farmer i can send to MMM per day)
for (int i = 0; i < m; i++)
{
String[] pAndA = br.readLine().split(" ");
int Pi = Integer.parseInt(pAndA[0]);
int Ai = Integer.parseInt(pAndA[1]);
farmerAndPrice.put(Pi, Ai); // Add price and quantity to HashMap
prices.add(Pi); // Add price to ArrayList
}
Collections.sort(prices);
int milkToBuy = 0;
int cost = 0;
while (milkToBuy < n) // The farmers still have milk to buy from
{
cost += farmerAndPrice.get(prices.get(0)) * prices.get(0);
milkToBuy += farmerAndPrice.get(prices.get(0));
if (milkToBuy > n) // If we buy more milk than we need
{
cost -= (milkToBuy - n) * prices.get(0);
}
System.out.println(prices.toString());
prices.remove(0);
}
File file = new File("milk.out"); // Output to milk.out
PrintWriter printWriter = new PrintWriter(file);
printWriter.println(cost);
printWriter.close();
}
}
最佳答案
我敢肯定,您没有正确考虑当多个奶农以相同价格出售牛奶时会发生什么。
您使用 HashMap 的方式意味着您将覆盖以前农民的值。
关于java - USACO 培训 : Mixing Milk fails on the last Case,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35494068/
任何调用 npm run升级到 Mix v4.x 后导致 mix 未定义。我在每次运行时都会看到这样的错误: > npm run development > @ development /projec
升级到 Laravel-Mix 6 之前: Laravel-Mix 版本:5.0.9(支持 Webpack 4) NPM 版本:6.14.5 通过这个 laravel 混合版本,我能够通过运行 pac
在 Laravel 5.5 中,我使用 laravel-mix 来编译我的 Assets 。 但是我不清楚:mix.js 之间有什么区别?和 mix.scripts为什么我要使用一个而不是另一个? 最
我有以下 webpack.mix.js: const { mix } = require('laravel-mix'); mix.scripts([ 'resources/assets/js/
目前,我正在寻找在运行 mix 任务时添加 SQL 语句日志记录的方法。例如,mix ecto.rollback 和 mix ecto.migrate 等命令输出信息: ... 13:45:53.01
我知道这个问题已经被问过了,答案总是单独的答案。 但是我看到 Mix.EctoSQL.ensure_started 提到了很多,这似乎是公认的方法。 然而,在 ecto_sql 3.1.2 中,此功能
mix compile ==> gettext could not compile dependency :gettext, "mix compile" failed. You can recompi
我正在使用 Laravel 5.5 ,在 webpack.mix 文件中,mix.styles 函数完美运行,我完美地编译了我的 css 文件,但是mix.scripts 不编译我在文档中找到的 js
如果我有一个mix.exs文件,例如: defmodule Mix.Tasks.My_task do use Mix.Task @shortdoc "Perform my task" de
这是我第一次使用 Laravel Mix、NodeJS 和 NPM。我试图遵循 Laravel 的文档并相信我做得对,但谁知道呢。 我正在尝试将多个 CSS 文件合并为一个。 webpack.mix.
我对系统发育回归模型比较陌生。过去,当我的树中每个物种只有 1 个条目时,我使用了 PGLS。现在我有一个包含总共 9 个物种的数千条记录的数据集,我想运行一个系统发育模型。我阅读了最常见软件包(例如
TLDR; 您是否必须链接 Laravel Mix 方法来维护执行顺序?是否有任何异步方法会阻止使用以下非链接模式,mix.scripts(); mix.js(); mix.sass(); ? 我运行
我想为支持“显示:网格”但不支持 IE/MS Edge 的浏览器提供特定部分的 CSS。你如何混合正面和负面的@support 查询? 你能写“and not”还是有类似的符号?不幸的是,以下方法不起
在生产中,加载我使用的 Assets ,例如: 并期望在编译时看到: 但是我只是看到相对路径: webpack.mix.js: mix .js('resources/assets/js/ap
有人可以向我解释一下 MIX 中的除法(来自 Knuth 的 TAOCP)是如何在字节到字节的基础上工作的吗? rA = |-| . . . .0| rX = |+|1235|0|3|1| 内存位置
我正在尝试使用我从 themeforest 与 Laravel 购买的主题 我已经使用 mix.copy 将我的字体从 node_modules 移动到我的 public 目录,这工作正常。/ 但是,
至少就在两周前,我一直在代理后面使用mix。但是我昨天发现 mix 无法在代理后面工作。混合版本是1.1.1。mix local.hex 运行。但是mix deps.get 出现错误。 $ mix d
我有一个 C++ 程序,我在其中使用递归迭代器遍历我作为参数提供给程序的文件夹。 问题是,当我在路径上调用 .string 时,我在路径中混合了\和/。使用 .generic_string 修复了这个
所以我有一个 JS 文件,我想使用 Laravel mix 进行混合、复制和压缩;我的 webpack.mix.js 文件如下所示: const mix = require('laravel-mix'
我有一个 Elixir 伞形项目。这个项目中的每个应用程序都可以使用 mix escript.build 编译成可执行文件。 我正在尝试从伞项目的根目录运行此命令并收到以下错误 ** (Runtime
我是一名优秀的程序员,十分优秀!