You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.6 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

牛吃草问题

一、题目描述

首先,题目肯定会给你4个数据,我们就这样表示:一块牧场,够a头牛吃b天,够c头牛吃d天。

二、草每天增长的速度

我们就假设:每头牛每天吃一份,那么: 第一种情况,这a头牛在b天中,吃了a*b

同理,第二种情况,吃了c*d份 由于数据不同,a*bc*d两乘积一定有差

我们就用(a*b-c*d)/(b-d)(c*d-a*b)/(d-b)

为什么这样做呢?我们想一想,a头牛与c头牛吃的量差在哪儿呢? 原有草量?肯定不是,同一片牧场嘛!

那肯定是a头牛与c头牛吃的 天数的差异

为什么呢,因为草也是按一定的速度增长的,你吃的天数多,累计增加的草量也多。 怎么求出这个增加速度呢?就是我们之前提出的那个式子啦 a*b-c*dc*d-a*b即两种情况吃的总草量的 差值(这个差值就是由草的增长造成的),b-dd-b即两种情况吃的天数差值,二者前者除以后者,便是 草每天增长的速度啦,我们将这个结果先表示为e

三、 原草量

接着,我们就可以用a*b-b*ec*d-d*e来求出原有草量了。

四、常规问法

做到这个地步,题目大致会有3种问法:

1、给你n头牛,求他们可以吃多少天

  • 如果n≤e,肯定可以吃无数天了(每天增长的量都吃不完,草量肯定是持续在增长的,越吃越多)
  • 如果n>e,那么,我们就先派e头牛去吃增加的草量(每天都把增加的草量刚好吃完,这样原有草量一旦吃完,草场的草也就吃完了),而剩下的n-e头牛,就去吃原有草量,能吃的天数便是原有草量除以剩下的牛一天能吃的总量就可以了,即a*b-b*e/(n-e)

2、给你n天,求多少头牛可以刚好n天吃完

与之前一样,还是要先派e头牛去吃增加的草量(把增加的把控的死死的,随时待命),接着,只要把原有草量在n天之内吃完就好了,需要派的牛即为a*b-b*e/n,加上吃增加草量的e头牛,答案就是(a*b-b*e)/n+e

3、问这个草场最多可供多少头牛一直吃下去

这种问题只要你思路想到了,其实过程很简单 你想想,牛想要一直吃下去,每天吃的总草量就得≤每天增加的草量,那么,答案便是e(向下取整,保证答案为整数)头牛了。