HDU5432-Pyramid Split[通俗易懂]

HDU5432-Pyramid Split[通俗易懂]最近以各种借口偷懒了,上次BC的题一直也没补,今天才补完第一题,非常好过,可当时就是想不通~#include#include#include#defineeps1e-5doublea[10005],b[10005];intn;intbSearch(doublebegin,doubleend,doublee){doublemid,left=begi

大家好,又见面了,我是你们的朋友全栈君。

最近以各种借口偷懒了,上次BC的题一直也没补,今天才补完第一题,非常好过,可当时就是想不通~

#include<stdio.h>
#include<string.h>
#include<math.h>
#define eps 1e-5
double a[10005],b[10005];
int n;
int bSearch(double begin,double end,double e)
{
    double mid, left = begin, right = end;
    while(right-left>eps)
    {
        mid = (left + right)/2;
        double sum=0;
        for(int i=0;i<n;i++){
            if(a[i]<mid) continue;
            double r=(a[i]-mid)/a[i]*b[i];
            double h=a[i]-mid;
            sum+=1.0/3*r*r*h;
        }
        if(fabs(sum-e)<eps) return mid;
        if(sum-e>eps) left = mid;
        else right = mid ;
    }
    return left;
}
int main()
{
    int t;
    scanf("%d",&t);
    while(t--)
    {

        scanf("%d",&n);
        for(int i=0;i<n;i++)
            scanf("%lf",&a[i]);
        for(int i=0;i<n;i++)
            scanf("%lf",&b[i]);
        double sum=0;
        for(int i=0;i<n;i++){
            sum+=1.0/3*b[i]*b[i]*a[i];
        }
        sum/=2;
        double k=bSearch(0,5000,sum);
        printf("%d\n",(int)k);
    }
    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151015.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 最大公约数和最小公倍数

    最大公约数和最小公倍数最大公约数和最小公倍数

    2022年4月24日
    36
  • promptings是什么意思啊(think again)

    原文:http://windowsxp.mvps.org/890859.htm 当你通过Web方式的WindowsUpdates或者Windows自动更新安装完KB890859补丁后,系统依然不断提示此更新未安装,不断弹出安装对话框,可能的原因是一个或者多个主要的Windows文件未能成功地被此Hotfix更新或者覆盖导致,需要校验此更新是否成功,打开%WINDIR%/system32目录,

    2022年4月14日
    55
  • UFT工具简介

    UFT工具简介UFT UFT是一种自动测试工具。使用UFT的目的是想用它来执行重复的自动化测试,主要是用于回归测试和测试同一软件的新版本。因此你在测试前要考虑好如何对应用程序进行测试,例如要测试哪些功能、操作步骤、输入数据和期望的输出数据等  基本功能UFT提供符合所有主要应用软件环境的功能测试和回归测试的自动化。采用关键字驱动的理念以简化测试用例的创建和维护。它让用户可以直接录制屏幕上的操作流

    2022年5月15日
    167
  • 转换流实现了字节流和字符流之间的互相转换_java输出流输出文件

    转换流实现了字节流和字符流之间的互相转换_java输出流输出文件1、转换流–OutputStreamWriter简介:OutputStreamWriterextendsWriter,转换流也是继承自超类Writer,因此可以使用Writer中的共性方法:write(intc),write(char[]ch),…,flash(),close(),…OutputStreamWriter常用的构造方法:1)OutputStreamWr…

    2025年9月1日
    5
  • CSDN博客——“我的2014”年度征文活动火爆开启

    CSDN博客——“我的2014”年度征文活动火爆开启离2014的结束还有3天,一年终去,感触颇多:或是振奋,或是感动,或是美好……静下心来,我们一起来盘点这一年的工作和生活。这一年你是否

    2022年6月15日
    29
  • 【Linux】内核编程中的EXPORT_SYMBOL()

    【Linux】内核编程中的EXPORT_SYMBOL()查看符号导出结果命令:以EXPORT_SYMBOL(export_symbol_server)为例:$cat/proc/kallsyms|grepexport_symbol_server一:EXPORT_SYMBOL()宏定义相关定义如下#define___PASTE(a,b)a##b#define__PASTE(a,b)___PASTE(a,b)#define__UNIQUE_ID(prefix)__PASTE(__PASTE(__UNIQUE_ID_,p

    2022年7月16日
    21

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号