本文主要是介绍题目 3150: 冶炼金属,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述:
小蓝有一个神奇的炉子用于将普通金属 O 冶炼成为一种特殊金属 X。这个炉子有一个称作转换率的属性 V,V 是一个正整数,这意味着消耗 V 个普通金
属 O 恰好可以冶炼出一个特殊金属 X,当普通金属 O 的数目不足 V 时,无法继续冶炼。
现在给出了 N 条冶炼记录,每条记录中包含两个整数 A 和 B,这表示本次投入了 A 个普通金属 O,最终冶炼出了 B 个特殊金属 X。每条记录都是独立
的,这意味着上一次没消耗完的普通金属 O 不会累加到下一次的冶炼当中。
根据这 N 条冶炼记录,请你推测出转换率 V 的最小值和最大值分别可能是多少,题目保证评测数据不存在无解的情况。
代码:
package lanqiao;import java.math.BigInteger;
import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();int max = Integer.MAX_VALUE;int min = Integer.MIN_VALUE;int[] a = new int[n];int[] b = new int[n];for(int i = 0;i < n;i ++){a[i] = sc.nextInt();b[i] = sc.nextInt();max = Math.min(a[i] / b[i],max);}for(int i = max;i >= 0;i --){for(int j = 0;j < n;j ++){if(a[j]/i > b[j]){System.out.println(i + 1 + " " + max);return;}}}}
}
这篇关于题目 3150: 冶炼金属的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!