HDU 1.3.6 悼念512汶川大地震遇难同胞(排序|贪心|)

来源:互联网 发布:我国加工贸易数据 编辑:程序博客网 时间:2024/04/29 01:03

分析:这道题目和上道题目非常像,只不过需要升序排列;而且要选择单价最小的,并且可以买到小数的大米重量。

代码:

import java.text.DecimalFormat;import java.util.Arrays;import java.util.Scanner;class Node implements Comparable{int p;int h;public int compareTo(Object o){Node n = (Node)o;return this.p-n.p;}}public class Main{public static void main(String[] args) {Scanner in = new Scanner(System.in);int c;c= in.nextInt();while(0 != c--){int money ,n;money = in.nextInt();n = in.nextInt();Node[] arr = new Node[n];for (int i = 0; i < n; i++) {arr[i]= new Node();arr[i].p = in.nextInt();arr[i].h = in.nextInt();}Arrays.sort(arr,0,n);double sum=0;         for (int i = 0;i<n ;i++ ) {       if(money==0) break;           if(money>=arr[i].p*arr[i].h){           sum+= arr[i].h;             money-=arr[i].p*arr[i].h;           }           else{           sum += (double)money/(arr[i].p);           money = 0;           }       }       DecimalFormat df = new DecimalFormat( "0.00");         System.out.println(df.format(sum));}}}


0 0
原创粉丝点击