2017.08.10小结

  • Post author:
  • Post category:其他


第一题:


题目意思:我过生日请了

f 个朋友来参加我的生日party,m个蛋糕,我要把它平均分给每个人(包括我),并且每个人只能从一块蛋糕得到自己的那一份,并且分得的蛋糕大小要一样,形状可以不一样,每块蛋糕都是圆柱,高度一样。


此题是一个二分题,下限是用最大的分,上限是

sum/f+1。中间值是m,当cnt+=cnt+=(int)floor(p[i]/m);cnt<f+1,则r=m;否则l=m;二分的结束条件是(l+0.00001)。


第十六题:

思路:

这个题是叫我们求最小值,那么很明显对于函数求最值,最简单的方法就是求导


我们队

f(x)求导之后得到:f'(x)=42*x^6+48*x^5+21*x*x+10x-y


很明显,当

f'(x)=0时取得最值,然后由于定义域x属于[0,100]那么可以推断,f'(x)=0时

f(x)有最小值。

我们可以利用二分




算法





去计算

f'(x)=0时x为多少(注意f'(x)是单调递增的)


计算出

x之后再代入原函数解出最小值即可。


#include<stdio.h>


#include<math.h>



double df(double x)


{


return 42*pow(x,6)+48*pow(x,5)+21*x*x+10*x;


}



double f(double x,double y)


{


return 6*pow(x,7)+8*pow(x,6)+7*pow(x,3)+5*x*x-y*x;


}



int main()


{


int t,i;


double y,left,right,mid;


scanf(“%d”,&t);


while(t–)


{


scanf(“%lf”,&y);


left=0,right=100;


for(i=1;i<=100;i++)


{


mid=(left+right)/2;



版权声明:本文为yj20164395原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。