本文主要是介绍P9240 [蓝桥杯 2023 省 B] 冶炼金属(比值问题),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
数学分析:
1. max(最大比值) = A/B 余数p(p<B)
=> A=max*B+p
反证:若max不为最大,则设max+n为最大比值
(max+n)*B=max*B+n*B+p1 > A (n*B+p1 > p ,矛盾)
故max为最大比值
2.min(最小比值) = (A/(B+1))+ 1
分析:
(A/(B+1))是对于B+1的最大比值,加一即为对于B的最小比值
问题分析:
对于每组数据计算最大,最小比值
输出全部数据中
最小的最大比值 与 最大的最小比值
AC代码:
#include<iostream>
using namespace std;int main()
{int num; cin >> num;int max = -1,min=1000000009;for (int i = 0; i < num; i++){int n = 0, target = 0;scanf("%d %d", &n, &target);if (min > n / target) min = n / target;if (max < (n / (target + 1)) + 1) max = (n / (target + 1)) + 1;}cout <<max <<" " << min << endl;return 0;
}
这篇关于P9240 [蓝桥杯 2023 省 B] 冶炼金属(比值问题)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!