日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

矩形分割(洛谷P1324题题解,Java语言描述)

發布時間:2025/3/15 java 11 豆豆
生活随笔 收集整理的這篇文章主要介紹了 矩形分割(洛谷P1324题题解,Java语言描述) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目要求

題目鏈接

分析

用貪心做。

理由是:從行或列中優先選擇一個當前最大的,讓最大的值乘以最小的權,可以得到最小值,即最優解。

貪心需要排序,為啥選擇Integer[]而不是int[]呢?因為不然Comparator.reverseOrder()會沒法用。

AC代碼

import java.util.Arrays; import java.util.Comparator; import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt()-1, m = sc.nextInt()-1;long result = 0;// 必須用這個Integer[] row = new Integer[n], line = new Integer[m];for (int i = 0; i < n; i++) {row[i] = sc.nextInt();}for (int j = 0; j < m; j++) {line[j] = sc.nextInt();}// 升序改降序Arrays.sort(row, Comparator.reverseOrder());Arrays.sort(line, Comparator.reverseOrder());long i_count = 1, j_count = 1;for (int i = 0, j = 0; i < n || j < m; ) {if (i == n) {result += i_count*line[j];j_count++;j++;} else if (j == m || row[i] > line[j]) {result += j_count*row[i];i_count++;i++;} else {result += i_count*line[j];j_count++;j++;}}System.out.println(result);sc.close();}}

總結

以上是生活随笔為你收集整理的矩形分割(洛谷P1324题题解,Java语言描述)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。