JAVA只有第一个AC求助!
查看原帖
JAVA只有第一个AC求助!
971249
bycj1106楼主2023/3/28 01:25
import java.util.Scanner;
public class P2240_部分背包问题 {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int N = scanner.nextInt();// N堆金币
		int T = scanner.nextInt();// 背包重量
		double[][] arr = new double[N][2];
		double[] temps = new double[2];
		// 按单位价格排序
		for (int i = 0; i < N; i++) {
			for (int j = 0; j < 2; j++) {
				arr[i][j] = scanner.nextDouble();
			}
			if (i > 0 && (arr[i][1] / arr[i][0]) > (arr[i - 1][1] / arr[i - 1][0])) {
				temps[0] = arr[i - 1][0];
				temps[1] = arr[i - 1][1];
				arr[i - 1][0] = arr[i][0];
				arr[i - 1][1] = arr[i][1];
				arr[i][0] = temps[0];
				arr[i][1] = temps[1];
			}
		}
		double sum = 0;
		for (int i = 0; i < N; i++) {
			for (int j = (int) arr[i][0]; j > 0; j--) {
				if ((T - 1) >= 0) {
					sum += arr[i][1] / arr[i][0];
					T--;
				}
			}
		}
		System.out.printf("%.2f", sum);
	}
}

2023/3/28 01:25
加载中...