思路:直接暴力枚举区间[l,r]的整数值,然后max和min就可以了。
AC代码:
1 #pragma comment(linker, "/STACK:1024000000,1024000000") 2 #include<iostream> 3 #include<cstdio> 4 #include<cstring> 5 #include<cmath> 6 #include<math.h> 7 #include<algorithm> 8 #include<queue> 9 #include<set> 10 #include<bitset> 11 #include<map> 12 #include<vector> 13 #include<stdlib.h> 14 using namespace std; 15 #define ll long long 16 #define eps 1e-10 17 #define MOD 1000000007 18 #define N 56 19 #define inf 1e12 20 int main() 21 { 22 int t; 23 scanf("%d",&t); 24 while(t--){ 25 int a,b,c,l,r; 26 scanf("%d%d%d%d%d",&a,&b,&c,&l,&r); 27 int Max = -inf; 28 int Min = inf; 29 for(int i=l;i<=r;i++){ 30 int cnt = a*i*i + b*i + c; 31 Max = max(Max,cnt); 32 Min = min(Min,cnt); 33 } 34 printf("%d %d ",Max,Min); 35 36 } 37 return 0; 38 }