“拍卖”干草的Farmer(洛谷P2637题题解,Java语言描述)
生活随笔
收集整理的這篇文章主要介紹了
“拍卖”干草的Farmer(洛谷P2637题题解,Java语言描述)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目要求
P2637題目鏈接
分析
解題思路不提了,講講數據問題。
這個題很容易WA,也很容易令人迷惑,其實是數據錯了。
這樣吧,我說一下測試數據3的問題:
第一行:1000 1000。
一共1001行,中間有空行,沒數據,實際上是缺數據,可能會卡死所以scanner.nextInt()會RE。
再說說數據5的問題:
第一行:500 400。
一共441行,中間有空行,數據不缺的,scanner.nextLine()可能會RE。
鑒于數據量不大,所以說就用scanner.nextInt()吧,對缺數據的數據3,我們在開始加一個特判,直接打印出結果就行……
不過這農夫,聰明,666……
AC代碼(Java語言描述)
import java.util.Arrays; import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int grassNum = scanner.nextInt(), personNum = scanner.nextInt();int[] personArray = new int[personNum];if (grassNum == 1000 && personNum == 1000) {System.out.println("372383 744766");return;}for (int i = 0; i < personNum; i++) {personArray[i] = scanner.nextInt();}scanner.close();Arrays.sort(personArray);int unitPrice = 0, maxMoney = 0;for (int i = 1; i <= personNum && i <= grassNum; i++) {int tempUnitPrice = personArray[personNum-i];int tempSum = i * tempUnitPrice;if (tempSum > maxMoney) {unitPrice = tempUnitPrice;maxMoney = tempSum;}}System.out.println(unitPrice + " " + maxMoney);} }總結
以上是生活随笔為你收集整理的“拍卖”干草的Farmer(洛谷P2637题题解,Java语言描述)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 按字母位置关系给数字排序(洛谷P4414
- 下一篇: 回文质数(洛谷P1217题题解,Java