当前位置: 首页 > article >正文

【Java贪心】P1208 [USACO1.3]混合牛奶 Mixing Milk

[USACO1.3]混合牛奶 Mixing Milk

题目描述

由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要。帮助 Marry 乳业找到最优的牛奶采购方案。

Marry 乳业从一些奶农手中采购牛奶,并且每一位奶农为乳制品加工企业提供的价格可能相同。此外,就像每头奶牛每天只能挤出固定数量的奶,每位奶农每天能提供的牛奶数量是一定的。每天 Marry 乳业可以从奶农手中采购到小于或者等于奶农最大产量的整数数量的牛奶。

给出 Marry 乳业每天对牛奶的需求量,还有每位奶农提供的牛奶单价和产量。计算采购足够数量的牛奶所需的最小花费。

注:每天所有奶农的总产量大于 Marry 乳业的需求量。

输入格式

第一行二个整数 n , m n,m n,m,表示需要牛奶的总量,和提供牛奶的农民个数。

接下来 m m m 行,每行两个整数 p i , a i p_i,a_i pi,ai,表示第 i i i 个农民牛奶的单价,和农民 i i i 一天最多能卖出的牛奶量。

输出格式

单独的一行包含单独的一个整数,表示 Marry 的牛奶制造公司拿到所需的牛奶所要的最小费用。

样例 #1

样例输入 #1

100 5
5 20
9 40
3 10
8 80
6 30

样例输出 #1

630

提示

【数据范围】
对于 100 % 100\% 100% 的数据:
0 ≤ n , a i ≤ 2 × 1 0 6 0 \le n,a_i \le 2 \times 10^6 0n,ai2×106 0 ≤ m ≤ 5000 0\le m \le 5000 0m5000 0 ≤ p i ≤ 1000 0 \le p_i \le 1000 0pi1000

题目翻译来自 NOCOW。

USACO Training Section 1.3

代码

import java.io.*;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;

public class Main {
    static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    static PrintWriter out = new PrintWriter(new PrintWriter(System.out));
    static StreamTokenizer st = new StreamTokenizer(in);
    static Scanner sc = new Scanner(in);
    public static void main(String[] args) throws IOException {
        int n = sc.nextInt();
        int m = sc.nextInt();
        int[][] ints = new int[m][2];
        milk[] milks = new milk[m];
        for (int i = 0; i < m; i++) {
            milks[i] = new milk(sc.nextInt(),sc.nextInt());
        }
        int res = 0;
        Arrays.sort(milks, Comparator.comparingInt(o -> o.price));
        for (int i = 0; i < milks.length; i++) {
            int i1 = n - milks[i].num;
            if (i1 > 0){
                res += milks[i].num * milks[i].price;
                n -= milks[i].num;
            }else {
                res+= n * milks[i].price;
                break;
            }
        }

        out.println(res);
        out.flush();
    }
}
class milk{
    Integer price;
    Integer num;

    public milk(Integer price, Integer num) {
        this.price = price;
        this.num = num;
    }
}

在这里插入图片描述


http://www.kler.cn/a/6859.html

相关文章:

  • 【git】git取消提交的内容,恢复到暂存区
  • STM32 创建一个工程文件(寄存器、标准库)
  • MySQL —— MySQL索引介绍、索引数据结构、聚集索引和辅助索引、索引覆盖
  • Java 全栈知识体系
  • OceanBase 分区表详解
  • 场景营销在企业定制开发 AI 智能名片 S2B2C 商城小程序中的应用与价值
  • mySql的配置文件 .ini
  • 办公工具-latex
  • (不打广告)推荐这款永久免费内网穿透软件-神卓互联
  • C#中的异常
  • 【趣味杂谈】ChatGPT,不止是第四次工业革命的开始
  • 网站都变成灰色了,怎么实现的?
  • 函数的返回值
  • ToBeWritten之Radare2 使用教程
  • [oeasy]python0129_unicode_中文字符序号_十三道大辙_字符编码解码_eval_火星文
  • Linux系统(Ubuntu) 安装和使用MySQL (5.0) ---- 保姆级教程
  • OD-求字符串中所有整数的最小和(Python)
  • 新加坡量子软件公司Horizon完成1810万美元A轮融资
  • 【多线程与高并发】1、线程的基本概念
  • 腾讯会议10秒编译百万代码|鹅厂编译加速标杆案例公开
  • 互联网坊间鄙视链,现在反过来了?
  • STM32F4_外部中断详解(EXTI)
  • row_number 和 cte 使用实例:分组轮流排班
  • 【独家】华为OD机试 - 狼羊过河 or 羊、狼、农夫过河(C 语言解题)
  • 基于单片机的室内空气质量检测系统设计_kaic
  • 2023年全国最新二级建造师精选真题及答案44