【题目来源】
https://www.luogu.com.cn/problem/B2006
【题目描述】
假设地球上的新生资源按恒定速度增长。照此测算,地球上现有资源加上新生资源可供 x 亿人生活 a 年,或供 y 亿人生活 b 年。
为了能够实现可持续发展,避免资源枯竭,地球最多能够养活多少亿人?
【输入格式】
一行,包括四个正整数 x,a,y,b,两个整数之间用单个空格隔开。
【输出格式】
一个实数 z,表示地球最多养活 z 亿人,舍入到小数点后两位。
【输入样例】
110 90 90 210
【输出样例】
75.00
【说明/提示】
对于 100% 的数据,1≤x,a,y,b≤10^4,x>y,a<b,ax<by。
【算法分析】
设 k 是年人均消耗资源量,r 是年新增资源量。
x 亿人生活 a 年,总消耗是 xak,而这段时间再生的资源是 ra,则初始资源量为 xak-ra。
y 亿人生活 b 年,总消耗是 ybk,而这段时间再生的资源是 rb,则初始资源量为 ybk-rb。
因为初始资源量相同,所以 xak-ra=ybk-r*b。
由上式 xak-ra=ybk-r*b,可得年新增资源量 r=(xak-ybk)/(a-b),再除以年人均消耗资源量 k,可得地球最多养活人数为 (xa - yb)/(a - b)。
【算法代码】
#include <bits/stdc++.h>
using namespace std;int main() {int x,a,y,b;cin>>x>>a>>y>>b;float t=1.0*(x*a-y*b)/(a-b);printf("%.2f",t);return 0;
}/*
in:
110 90 90 210out:
75.00
*/
【参考文献】
https://www.luogu.com.cn/problem/solution/B2006