贪心的Mixing Milk(洛谷P1208题题解,Java语言描述)
生活随笔
收集整理的這篇文章主要介紹了
贪心的Mixing Milk(洛谷P1208题题解,Java语言描述)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目要求
P1208題目鏈接
分析
要對奶農的價格進行排序,優先選擇低價格的牛奶,選完當前奶農的全部牛奶再選價格稍高的一位奶農的牛奶,依次選擇……
貪心體現在每次優先選擇最省錢的買法。
讀的數據可能很多,要使用BufferedReader。
AC代碼(Java語言描述)
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.Comparator;public class Main {private static class Person {int price;int num;Person(int price, int num) {this.price = price;this.num = num;}}public static void main(String[] args) throws IOException {BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));String[] line = reader.readLine().split("\\s");int need = Integer.parseInt(line[0]), num = Integer.parseInt(line[1]);Person[] array = new Person[num];for (int i = 0; i < num; i++) {line = reader.readLine().split("\\s");array[i] = new Person(Integer.parseInt(line[0]), Integer.parseInt(line[1]));}reader.close();Arrays.sort(array, Comparator.comparing(person -> person.price));long sum = 0;for (Person p : array) {if (need > p.num) {sum += p.num * p.price;need -= p.num;} else {sum += need * p.price;break;}}System.out.println(sum);}}總結
以上是生活随笔為你收集整理的贪心的Mixing Milk(洛谷P1208题题解,Java语言描述)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【HTML5】HTML5事件属性总结
- 下一篇: 口算练习题(洛谷P1957题题解,Jav