比赛--整理花园问题--解题报告

整理花园问题

题目大意:

有三户人家共拥有一座花园,每户人家的太太均需帮忙整理花园。A 太太工作了5 天,B 太太则工作了4 天,才将花园整理完毕。C 太太因为正身怀六甲无法加入她们的行列,便出了90元。请问这笔钱如何分给A、B 二位太太较为恰当?A 应得多少元?90/(5+4)*5=$50 元?如果这么想你就上当了!正确答案是60 元。如果没想通的话再想想吧。

下面回答一个一般性的问题:假定A 太太工作了x 天,B 太太工作了y 天,C 太太出了90元,则A 太太应得多少元?输入保证二位太太均应得到非负整数元钱。三个太太工作效率相同。

友情提示:本题有个小小的陷阱哦。如果答案错的话,认真检查一下代码吧。

要求:

Input

输入第一行为数据组数T (T<=20)。每组数据仅一行,包含三个整数x, y, z (1<=x, y<=10,1<=z<=1000)。

Output

对于每组数据,输出一个整数,即A 太太应得的金额(单位:元)。样例输入:

Sample Input

2
5 4 90
8 4 123 

Sample Output

60
123 

注意提示:如果使用浮点数,请小心误差,输出时尽量用四舍五入。

题目分析:这是一道典型的数学问题。做题前首先要做出计算公式,找到公式后写程序就简单了。要想得到A太太所得的钱数,因为要考虑到浮点数为问题,根据计算得到公式三人都做每人应做的天数s=(x+y)/3.0;A多做的天数a=x-s;B多做的天数b=y-s;C应该付给A的钱数pay=a/(a+b)*z。程序代码:
 1 #include<cstdio>
 2 #include<iostream>
 3 using namespace std;
 4
 5 int T[20];
 6 int y[10];
 7 int z[1000];
 8
 9 int main ()
10 {
11     int T;
12     scanf("%d",&T);
13     while(T--)
14     {
15     int x,y,z;
16     double a,b,s,pay;
17
18
19     scanf("%d%d%d",&x,&y,&z);
20
21         s=(x+y)/3.0;      //三人都做每人应做的天数
22         a=x-s;            //A多做的天数
23         b=y-s;            //B多做的天数
24         pay=a/(a+b)*z;    //C应付给A的钱数
25         int k=pay+0.5;    //将钱数四舍五入得到整数
26         cout<<k<<endl;
27     }
28     return 0;
29
30 }

心得:
这道题看起来很简单,但就是在计算A应该得到多少钱时,总也找不到关系式,所以计算了很久。找到关系式后,程序很快就写完啦。算是一道很简单的题目。

觉得自己在思考方面还存在一些问题,下次应该更多做一些数学题,锻炼一下自己的思维能力。

				
时间: 2024-10-29 19:10:49

比赛--整理花园问题--解题报告的相关文章

比赛--大巧克力问题--解题报告

大巧克力问题 题目大意: Mohammad has recently visited Switzerland . As he loves his friends very much, he decided to buy some chocolate for them, but as this fine chocolate is very expensive(You know Mohammad is a little BIT stingy!), he could only afford buyin

比赛--可乐商店问题--解题报告

可乐商店问题 题目大意: Once upon a time, there is a special coco-cola store. If you return three empty bottles to the shop,you’ll get a full bottle of coco-cola to drink. If you have n empty bottles right in your hand, how manyfull bottles of coco-cola can you

比赛--十进制转换十六进制--解题报告

十进制转换十六进制问题 题目大意: 把十进制整数转换为十六进制,格式为0x开头,10~15由大写字母A~F表示. 要求: Input 每行一个整数x,0<= x <= 2^31. Output 每行输出对应的八位十六进制整数,包括前导0. 输入样例: Input 0 1023 Output 0x000000000x000003FF 题目分析: 用十六进制格式转换符输出 程序代码: 1 #include<cstdio> 2 #include<iostream> 3 usi

比赛--建金字塔问题--解题报告

建金字塔问题 题目大意: Vanya got n cubes. He decided to build a pyramid from them. Vanya wants to build the pyramid as follows: the top level of the pyramid must consist of 1 cube, the second level must consist of 1 + 2 = 3 cubes, the third level must have 1 +

POJ 1905(集训比赛2B_A题)解题报告

题目链接:http://poj.org/problem?id=1905 --------------------------------------------------------- 题意:一个线段,给出长度.加热温度及热膨胀系数,线段加热后变为圆弧的一部分,要求求弧顶长度为多少. 思路:简单的画一下图,发现几何关系还是比较明确的,但是发现x的数学表达式并不容易解出来,所以采用二分法求值的方法.选择二分的对象很重要,直接选择对要求的x进行二分,避免角度误差太大. 代码: #include <

POJ 3122 (集训比赛2B_B题)解题报告

题目链接:http://poj.org/problem?id=3122 -------------------------------------------------------- 题意:每人只能从一个派里面切割,要求每个人的派的面积相等,求这个最大面积. 思路:二分法,下限是所有人从最小的里面切割,上限是所有派都完全分割.每次进行二分,判断解是否可行,通过可行性,对上下限进行调整,最终得到结果. 代码: #include <cstdio> #include <cmath> i

CodeForces 551C(集训比赛2B_C题)解题报告

题目链接:http://codeforces.com/problemset/problem/551/C --------------------------------------------------------------------------------- 题意:有n个地点,每个地点有箱子,然后有一定人数,每个人从第i个位置移动到第i+1的位置花费1S,每个人移动一个箱子花费1S,要求把所有箱子全部移除花费的最小时间是多少 思路:二分+贪心的思想,每次对一名学生进行判断.对所求时间进行

杭州电子科技大学Online Judge 之 “确定比赛名次(ID1285)”解题报告

杭州电子科技大学Online Judge 之 "确定比赛名次(ID1285)"解题报告 巧若拙(欢迎转载,但请注明出处:http://blog.csdn.net/qiaoruozhuo) Problem Description 有N个比赛队(1<=N<=500).编号依次为1,2,3,.....N进行比赛.比赛结束后.裁判委员会要将全部參赛队伍从前往后依次排名. 但如今裁判委员会不能直接获得每一个队的比赛成绩,仅仅知道每场比赛的结果.即P1赢P2,用P1.P2表示,排名时P

【百度之星2014~初赛(第二轮)解题报告】Chess

声明 笔者最近意外的发现 笔者的个人网站http://tiankonguse.com/ 的很多文章被其它网站转载,但是转载时未声明文章来源或参考自 http://tiankonguse.com/ 网站,因此,笔者添加此条声明. 郑重声明:这篇记录<[百度之星2014~初赛(第二轮)解题报告]Chess>转载自 http://tiankonguse.com/ 的这条记录:http://tiankonguse.com/record/record.php?id=667 前言 最近要毕业了,有半年没做