HDOJ: 5595

问题描述
某一天,GTW听了数学特级教师金龙鱼的课之后,开始做数学《从自主招生到竞赛》。然而书里的题目太多了,GTW还有很多事情要忙(比如把妹),于是他把那些题目交给了你。每一道题目会给你一个函数fxax2bxcf(x)=ax2​​+bx+c,求这个函数在整数区间lr[l,r]之间的最值。
输入描述
第一行一个整数T,表示数据组数。(T1000T1000)
对于每一组数据,有一行,共五个整数a,b,c,l,r。(∣a∣100∣b∣100∣c∣100∣l∣100∣r∣100lra100,b100,c100,l100,r100,lr)
输出描述
对于每一组数据,共一行两个整数max,min,表示函数在整数区间lr[l,r]中的最大值和最小值。
输入样例
1
1 1 1 1 2
输出样例
7 3
Hint
f13f27f1​​=3,f2​​=7,最大值=7,最小值=3

#include <iostream>

#include <cstdio>

using namespace std;

 

int main()

{

    int T;

    int a,b,c,l,r,i;

    int max,min;

    cin>>T;

    

    while (T--) {

        cin>>a>>b>>c>>l>>r;//输入数据

        max=(int)a*l*l+b*l+c;

        min=(int)a*l*l+b*l+c;

        

        for(i=l;i<=r;i++)//利用函数在区间上判断,不过注意下整数区间

        {

            if(max<(int)a*i*i+b*i+c)

                max=(int)a*i*i+b*i+c;

            if(min>(int)a*i*i+b*i+c)

                min=(int)a*i*i+b*i+c;

        }

        cout<<max<<" "<<min<<endl;

        

    }

    return 0;

}


posted @ 2015-12-12 20:22  yi天  阅读(130)  评论(0)    收藏  举报