hdu 5105(数学题)】的更多相关文章

Math Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2523    Accepted Submission(s): 606 Problem Description Here has an function:  f(x)=|a∗x3+b∗x2+c∗x+d|(L≤x≤R)Please figure out the max…
pid=5105" target="_blank" style="">题目链接:hdu 5105 Math Problem 题目大意:给定a.b,c,d.l,r.表示有一个函数f(x)=|a∗x3+b∗x2+c∗x+d|(L≤x≤R),求函数最大值. 解题思路:考虑极点就可以,将函数求导后得到f′(x)=0的x,即为极值点.在极值点处函数的单调性会发生变化,所以最大值一定就在区间边界和极值点上.注意a=0.b=0的情况,以及极值点不在区间上. #in…
http://acm.hdu.edu.cn/showproblem.php?pid=5105 给定a,b,c,d,l,r,表示有一个函数f(x)=|a∗x3+b∗x2+c∗x+d|(L≤x≤R),求函数最大值. 考虑极点可能有0~2个.在极值点处函数的单调性会发生变化,所以最大值一定就在区间边界和极值点上.所以求下l,r,极值点的函数大小然后取最大的即可. #include <cstdio> #include <cstdlib> #include <cmath> #in…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5105 题目意思:给出一个6个实数:a, b, c, d, l, r.通过在[l, r]中取数 x,使得这个函数 f(x)= |a∗x3+b∗x2+c∗x+d| 最大. 我一开始做的时候,很天真的认为数据量这么小,一个一个试,暴力搜就肯定能得到答案啦.但是一个很严重的问题是,x 没有说是实数还是整数,所以枚举根本不可行. 于是就联想到应该使用高中求一元三次方程的方法来做.我当时是直接从 f(l), f…
圆桌   题意就是每分钟可以将相邻的两个人的位置互换一下 , 问你 ,几分钟可以将所有人的位置互换成    原先的  B 在A的右边 C在A的左边 , 换成现在的 C 在A 的右边 , B 在 A 的 左边 . 看完题目之后就能发现这是一个数学题 , 但是怎么推导方程 呢 ? 我们知道 如果是一条直线想达到这样的效果的话 , n*(n-1)/2 由 冒泡 得之 圆桌的话这样当然是不行的 , 不能直接套上去 . 因为 直线的话 从 第一个 到最后一个 中间是有距离的 , 如果是圆桌的话 没有距离…
题目传送门 http://acm.hdu.edu.cn/showproblem.php?pid=5073 这道题RE了好多发啊囧,RE到精神不振. Galaxy的质心并不是一成不变的,随着一些星球的移动而变化,最终质心就变成了坐标和的平均值了. 具体思路如右http://mathlover.info/archives/hdu5073 代码就补贴了囧...…
题意:balabala 题意里给出了好多集合之间的关系,一开始以为要用离散一步一步推什么的... [然而其实并没有什么卵用 对于每一种语言来说,这种语言谁会谁不会是的方案数一定,而且语言之间相互独立的,互相之间通过乘法原理来计算方案数,这样就一定是某一个数的n次方啦~ 由sample data知,答案为32^n 用java写能偷懒[逃 import java.io.*; import java.math.*; import java.util.*; public class Main { pub…
官方题解: f(x)=|a∗x3+b∗x2+c∗x+d|, 求最大值.令g(x)=a∗x3+b∗x2+c∗x+d,f(x)的最大值即为g(x)的正最大值,或者是负最小值.a!=0时, g′(x)=3∗a∗x2+2∗b∗x+c 求出g′(x)的根(若存在,x1,x2,由导数的性质知零点处有极值.ans=max(f(xi)|L≤xi≤R).然后考虑两个端点的特殊性有ans=max(ans,f(L),f(R)). 当时 x = -c/(2*b) 写成 x = -c/2*b 了,然后过pretest了.…
题意 f(x)=|ax3+bx2+cx+d| 求f(x)在L≤x≤R的最大值. 分析 参数有可能是0,注意分类讨论 1.当a=0时 b=0,f为一次函数(c≠0)或者常数函数(c=0),最大值点在区间端点. b≠0,f为二次函数,最大值点在区间端点或者x0=c/(2*b),当L≤x0≤R时,ans=max{f(L),f(R),f(x0)}. 2.当a≠0时,f为三次函数 最大值点在区间端点或者导函数的零点x1,x2. 注意x1,x2是否在[L,R]区间. 代码 #include<cstdio>…
让求  f(x)=|a∗x3+b∗x2+c∗x+d|(L≤x≤R)的最大值 这个题目讨论a和b的值,如果a==0的话,那么这个方程就变成了一个一元二次方程,直接找端点和对称轴(如果对称轴在给定的区间内)处的函数值就行,如果a != 0,那么求导,求导之后判断二次方程的delta,如果delta小于等于0,说明是单调的,那么最值还是端点处取到,如果delta大于0, 那么就要比较两个极点(如果极点在给定的区间内)处的值和端点值的大小就行了. /***************************…