MLE超内存了,有没有大佬能优化一下啊!

P1478 陶陶摘苹果(升级版)

Chin_aliu @ 2023-04-23 18:40:07

import java.util.PriorityQueue;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        long s1=System.currentTimeMillis();
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();//n个果子
        int s=sc.nextInt();//力气
        int a=sc.nextInt();//椅子的高度
        int b=sc.nextInt();//手伸直最大长度
        int[][] arr=new int[n][n];
        for(int i=0;i<n;i++)
        {
            arr[i][0]=sc.nextInt();//高度
            arr[i][1]=sc.nextInt();//要花费的力气
        }
        PriorityQueue<Integer> pr=new PriorityQueue<>();
        for(int i=0;i<n;i++)
        {
            if(arr[i][0]<=a+b)
            {
                pr.add(arr[i][1]);//可以拿到的都放优先队列里
//              System.out.println(arr[i][0]+" "+arr[i][1]);
            }
        }
        int sum=0;
        int count=0;
        while(sum<s)//力气用完就停
        {
            int t=pr.poll();//每次取最小的
            sum+=t;
//          System.out.println(t);
            count++;
        }
        if(sum>s)//他可能超所以要减最后一个
        {
            System.out.println(count-1);
//          System.out.println("s:"+s+" sum:"+sum);
        }else {
            System.out.println(count);
        }
        long s2=System.currentTimeMillis();
        System.out.println(s1);
        System.out.println(s2);
        System.out.println(s2-s1);
    }

}


by cff_0102 @ 2023-04-23 18:43:39

你的arr[i][2],arr[i][3],…,arr[i][n-1]是干嘛的


by Chin_aliu @ 2023-04-24 23:35:20

@cff_0102 卧槽这才发现开多了,谢谢大佬


|