题解

85 条题解

  • -1
    @ 2016-11-04 21:32:23

    暴力搞即可

    #include<iostream>
    #include<cstdio>
    #include<cmath>
    using namespace std;
    int a,b,c,d;
    double f(double x){return sqrt((x+a)*(x+a)+b)+sqrt((x+c)*(x+c)+d);}
    int main()
    {
    int i;cin>>a>>b>>c>>d;
    double mi=1e12,x=0.2,cur;
    for(i=1;i<200020;++i)
    {
    x=x-0.1;cur=f(x);
    if(cur>=mi)break;
    mi=cur;
    }x=x+0.1;
    for(i=1;i<100020;++i)
    {
    x=x-0.000001;cur=f(x);
    if(cur>=mi)break;
    mi=cur;
    }
    printf("%0.3lf",mi);
    }

  • -1
    @ 2016-03-24 20:21:07

    var a,b,c,d:extended;
    begin
    read(a,b,c,d);
    writeln(sqrt(sqr(a-c)+sqr(sqrt(b)+sqrt(d))):0:3);
    end.

  • -1
    @ 2015-08-10 21:30:31

    #include<cstdio>
    #include<cmath>
    using namespace std;

    int main()
    {
    int a, b, c, d;

    scanf("%d%d%d%d", &a, &b, &c, &d);
    double i=-a, j=sqrt(b), k=-c, l=-sqrt(d), ans=sqrt( (i-k)*(i-k) + (j-l)*(j-l) );
    printf("%.3f", ans);
    return 0;
    }
    好水。。。。。。

  • -1
    @ 2015-02-14 20:32:16

    #include<iostream>
    #include<stdio.h>
    #include<math.h>
    using namespace std;
    int main()
    {
    double a,b,c,d;
    cin>>a>>b>>c>>d;
    double dis;
    dis=sqrt((a-c)*(a-c)+(sqrt(b)+sqrt(d))*(sqrt(b)+sqrt(d)));
    printf("%.3f",dis);
    return 0;

    }

  • -1
    @ 2014-10-28 14:35:22

    #include<stdio.h>
    #include<math.h>
    #define DIST(x1,y1,x2,y2) sqrt(((x1)-(x2))*((x1)-(x2))+((y1)-(y2))*((y1)-(y2)))
    int main()
    {
    int a,b,c,d;
    scanf("%d%d%d%d",&a,&b,&c,&d);
    printf("%.3lf\n",DIST(0-a,sqrt((double)b),0-c,0-sqrt((double)d)));
    return 0;
    }

  • -1
    @ 2014-10-28 14:34:41

    include <iostream>
    using namespace std;

    int main()
    {
    int arr[10]; int idx = 0; int h = 0, cnt = 0;

    for (idx = 0; idx < 10; idx++)
    {
    cin >> arr[idx];
    }
    cin >> h;
    for (idx = 0; idx < 10; idx++)
    {
    if (arr[idx] <= h + 30)
    {
    cnt++;
    }
    }
    cout << cnt << endl;
    return 0;
    }

  • -1
    @ 2014-08-04 16:14:43

    #include<cstdio>
    #include<cmath>
    using namespace std;
    main()
    {
    double a,b,c,d;
    scanf("%lf%lf%lf%lf",&a,&b,&c,&d);
    printf("%.3lf",sqrt((sqrt(b)+sqrt(d))*(sqrt(b)+sqrt(d))+(a-c)*(a-c)));
    }

  • -1
    @ 2014-04-07 19:36:15

    题目绕人,然后发现,水,真好喝...不过做题比读题快......是不是大部分题都是这样的??!!
    初中几何取对称......
    var a,b,c,d:real;
    begin
    read(a,b,c,d);
    b:=sqrt(b);
    d:=sqrt(d);
    write(sqrt(sqr(b+d)+sqr(c-a)):0:3);
    end.

  • -1
    @ 2013-08-21 15:17:58


    sqrt((x+a)^2+b)+sqrt((x+c)^2+d)的最小值

    观察两点间距离公式sqrt((x1-x2)^2+(y1-y2)^2)

    可构造点A(x,0) B(-a,sqrt(b)) C(-c,sqrt(d))

    AB=sqrt((x+a)^2+(-sqrt(b))^2)=sqrt((x+a)^2+b)
    AC=sqrt((x+c)^2+(-sqrt(d))^2)=sqrt((x+c)^2+d)

    原问题转化为求在x轴上找一点A,使AB+AC最小
    由于0<a、b、c、d<=10000

    那么BC都在第二象限

    作B关于x轴的对称点B'(-a,-sqrt(b))
    答案就是B'C=sqrt((a-c)^2+(sqrt(b)+sqrt(d))^2)

    时间 空间复杂度都是O(1)

  • -1
    @ 2009-11-09 12:53:35

    太水了!!!!!!

  • -1
    @ 2009-10-26 23:12:38

    var a,b,c,d,x:real;

    begin

    read(a,b,c,d);

    x:=-(sqrt(b)*c+sqrt(d)*a)/(sqrt(b)+sqrt(d));

    writeln(sqrt((x+a)*(x+a)+b)+sqrt((x+c)*(x+c)+d):0:3);

    end.

    我这个似乎最短

  • -1
    @ 2009-10-24 10:29:20

    此题通过率和星际青蛙弱弱版通过率有一拼!

  • -1
    @ 2009-10-22 23:07:46

    好水....难度还2??

    作对称即可

  • -1
    @ 2009-10-06 13:27:05

    maths problem!

    ms是某年初赛读程序题改编

  • -1
    @ 2009-09-16 21:45:52

    这水

    真是好喝的。。。。

  • -1
    @ 2009-08-14 13:58:57

    荡着小舟过了这题!都是水啊!

  • -1
    @ 2009-08-10 22:13:29

    顶~~~~~~~

    Orz___|\___|_

    water poblem万岁!!!!!!!!

  • -1
    @ 2009-07-27 15:25:46

    var a,b,c,d,k:real;

    begin

    read(a,b,c,d);

    b:=sqrt(b);

    d:=sqrt(d);

    writeln(sqrt(sqr(b+d)+sqr(c-a)):0:3);

    end.

    取对称吧……

  • -1
    @ 2009-07-23 12:54:28

    因为F(x)=sqrt((x+a)^2+b)+sqrt((x+c)^2+d)

    又因为b,d为完全平方数

    设:b为t^2,d为m^2

    因为F(x)=sqrt((x+a)^2+t^2)+sqrt((x+c)^2+m^2)

    sqrt(a^2+b^2) 想到了吧。。。。。

    所以f(x)可以看作为点(x,0)到点(-a,t),(-c,m)的距离

    又因为点(-a,t),(-c,m)为定点

    点(x,0)为x轴上的任意点

    到这就是初中数学了。。

    当点(-a,t),(-c,m)位于x轴的两侧时

    所以两点连线为最段距离(即f(x)最小)

    当点(-a,t),(-c,m)位于x轴的同侧时

    所以作其中1点关于x轴的对称点,连接对称点与另外1点的线段

    为最段距离(即f(x)最小)

    (其实这题,b,d肯定大于0 ,t,m大于0,

    只有第二种情况

信息

ID
1433
难度
1
分类
计算几何 | 其他 | 数学其他 | 三分查找 点击显示
标签
递交数
1033
已通过
683
通过率
66%
被复制
5
上传者