PROBLEM B D ARE INCLUDED.
Problem B Curvy Little Bottles
题意:
对一个瓶子标记刻度。瓶子被描述为:以 X 轴为中轴,切面为圆且圆的半径与X的关系式为 P
第一行先给出 N 代表 表达式 P 的最高次幂。
第二行给出 P 中 i 次幂的系数。
第三行给出瓶底的 X 坐标 xlow,和瓶口的 X 坐标 xhigh,即要求每 V 单位容积需要标记刻度。
请输出至多 8 个要标记刻度处离瓶底的距离。
思路:
解题思路大致就是一道高数基础题,求旋转体的体积。
由于多项式 P 并一定不是单调的且形状不定,我们不能直接二分求体积。
需通过积分,求出 体积 与 X 的关系,再二分 X 。
代码:
代码精度控制很渣 eps开到-6才能过
#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-6;
const double PI = acos(-1);
double a[12],f[22],F[25],low,high,v;
int n;
void integrate(){
memset(F,0,sizeof(F));
for(int i=1;i<=22;i++)
F[i]=f[i-1]/i