例1-11 評測機隊列


問題:

洛谷的評測任務是單位時間內均勻增加的。8台評測機30min可以剛好把評測隊列中的程序評測完畢,10台評測機6min可以剛好把評測隊列中的程序評測完畢。請問:幾台評測機可以在10min時剛好把評測隊列中的程序評測完畢?

分析:
著名的“牛吃草問題”的模型!

特點:
1、原來就有草。
2、一邊吃來一邊長。
3、先算時間長的,求是總量。
4、再算時間短的,求出時間差范圍內的增量。
5、計算出增長速度。
6、任選一組數據,根據時間 * 速度,得到這段時間內的增量。
7、總量減增量得到原始量。
8、再根據題目要求,計算出其它,比如給10分鍾時間,需要多少台機器等等。

本題分析過程:
1、8台評測機30min可以評測30*8=240道試題。

2、10台評測機6min可以評測10*6=60道試題。

3、在30-6=24min內,增加了240-60=180道試題,增加的速度為 180/24=7.5道。

4、在6min內,增長了 6 * 7.5=45 道,總數是60道,所以原來在開始前就有60-45=15道題。

5、題目要求是10min內,就是10 * 7.5=75,再加了原始的試題量15,就是90個需要評測的試題。在10分鍾內,就是需要9台評測機。

C++代碼

#include <bits/stdc++.h>

using namespace std;

int main() {
    //題目給出的評測機數量和時間
    int n1 = 8, t1 = 30, n2 = 10, t2 = 6;
    int t3 = 10;    //題目要求的時間10分鍾
    double inc_rate = (1.0 * n1 * t1 - n2 * t2) / (t1 - t2);//增長速度,注意1.0的用途
    double init_num = n2 * t2 - inc_rate * t2;//初始化隊列長度
    double ans = (init_num + t3 * inc_rate) / t3;//求得答案
    cout << ans << endl;
    return 0;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM