求大牛看看
查看原帖
求大牛看看
701263
wwwzx楼主2022/11/9 11:09
```java
import java.util.*;

class objects implements Comparable<objects>{
    int m;
    int v;
    double d;
    objects(int m,int v,double d){
        this.m = m;
        this.v = v;
        this.d = d;
    }
    @Override
    public int compareTo(objects o) {
        return (int) ((int) o.d-this.d);
    }

}
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int t = sc.nextInt();
        List<objects> list = new ArrayList();
        for (int i = 0; i < n; i++) {
            int m = (int) (sc.nextInt());
            int v = (int) (sc.nextInt());
            list.add(new objects(m,v,(v*1000000*1.0)/(m*1000000)));
        }
        Collections.sort(list);
        int bag = 0;
        double value = 0;
        int i =0;
        while(bag!=t){
            if(bag+list.get(i).m<t){
                bag+=list.get(i).m;
                value+=list.get(i).v;
            }
            else if (bag+list.get(i).m>=t){
                value+=(list.get(i).d*(t-bag));
                bag=t;
            }
            i++;
        }
        System.out.println(String.format("%.2f", value));
    }
}

不知道问题在哪里,是精度问题吗?

2022/11/9 11:09
加载中...