题目:有三个家庭ABC清理一个花园,每个家庭清理的速度相同,C家庭出去度假,只有AB两个家庭清理;
A家庭清理x小时,B家庭清理y小时,C家庭回来支付了z元,问A家庭得到多少钱。
分析:简单题。看一下样例,把花园分成3份,一共用了9个小时清理,每个家庭的前3个小时是自己的;
所以,A家庭清理了C家庭部分2小时,B家庭清理了C家庭部分1小时,所以A家庭得60美元。
设总量为3a个小时,C家庭部分B工作了b小时,则有如下方程:
则设(2a-b)/ (a+b)= k = x / y 得 (a-b)/ a = (2k-1)/ (k+1)= (2m-n)/ (n+m)。
说明:冲进前600了( ⊙ o ⊙ )。
#include <algorithm> #include <iostream> #include <cstdlib> #include <cstring> #include <cstdio> #include <cmath> using namespace std; int main() { int n,x,y,z; while (~scanf("%d",&n)) for (int i = 0 ; i < n ; ++ i) { scanf("%d%d%d",&x,&y,&z); printf("%d\n",z*(2*x-y)/(x+y)); } return 0; }
原文:http://blog.csdn.net/mobius_strip/article/details/43083027