程序笔记   发布时间:2022-07-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了例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;
}

大佬总结

以上是大佬教程为你收集整理的例1-11 评测机队列全部内容,希望文章能够帮你解决例1-11 评测机队列所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。