197 条题解

  • 0
    @ 2009-07-23 16:22:08

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    program p1116(input,output);

    var i:longint;

    f,f1,f2,f3,gen1,gen2,gen3,a,b,c,d,x:real;

    procedure jh(var a,b:real);

    var c:real;

    begin

    c:=a;

    a:=b;

    b:=c;

    end;

    begin

    readln(a,b,c,d);

    gen1:=-100;

    gen2:=-99.99;

    gen3:=-99.98;

    f1:=a*gen1*gen1*gen1+b*gen1*gen1+c*gen1+d;

    f2:=a*gen2*gen2*gen2+b*gen2*gen2+c*gen2+d;

    f3:=a*gen3*gen3*gen3+b*gen3*gen3+c*gen3+d;

    if abs(f1)>abs(f2) then begin jh(f1,f2); jh(gen1,gen2); end;

    if abs(f2)>abs(f3) then begin jh(f2,f3); jh(gen2,gen3); end;

    if abs(f1)>abs(f2) then begin jh(f1,f2); jh(gen1,gen2); end;

    for i:=-9997 to 10000 do

    begin

    x:=i/100;

    f:=a*x*x*x+b*x*x+c*x+d;

    if abs(f)gen2 then jh(gen1,gen2);

    writeln(gen1:0:2,' ',gen2:0:2,' ',gen3:0:2);

    end.

    枚举竟可以骗到全部得分!!!!!!!!!!!!

    哎……骗分也可以这么简单……

  • 0
    @ 2009-07-20 10:26:39

    var

    i,l:longint;

    a,b,c,d,x,y,k:real;

    s:array[0..6]of real;

    begin

    read(a,b,c,d);

    fillchar(s,sizeof(s),0);

    l:=0;

    for i:=-100000 to 100000 do

    begin

    k:=i/1000;

    x:=a*k*k*k+b*k*k+c*k+d;

    k:=k+0.001;

    y:=a*k*k*k+b*k*k+c*k+d;

    if (x*y

  • 0
    @ 2009-07-15 13:53:23

    var

    i,l:longint;

    a,b,c,d,x,y,k:real;

    s:array[0..6]of real;

    begin

    read(a,b,c,d);

    fillchar(s,sizeof(s),0);

    l:=0;

    for i:=-100000 to 100000 do

    begin

    k:=i/1000;

    x:=a*k*k*k+b*k*k+c*k+d;

    k:=k+0.001;

    y:=a*k*k*k+b*k*k+c*k+d;

    if (x*y

  • 0
    @ 2009-07-04 09:59:11

    请问有什么问题

  • 0
    @ 2009-07-03 12:51:45

    var

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

    i,t:integer;

    function f(x:real):real;

    begin

    f:=((a*x+b)*x+c)*x+d;

    end;

    begin

    read(a,b,c,d);

    t:=0;

    for i:=-10000 to 10000 do

    begin

    x:=i/100;

    if (f(x)>-0.0001) and (f(x)3 then exit;

    write(x:0:2,' ');

    end;

    end;

    end.

  • 0
    @ 2009-06-30 20:06:21

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    童鞋们猪益了!!!

    算出来写=,要看相差多少

  • 0
    @ 2009-06-20 11:34:40

    总算AC了。。。

    a,b,c,d开成了longint,只A了一半的点。。。

  • 0
    @ 2009-06-13 21:46:44

    楼下的看不懂啊

    怎么function js下面又来了个var

  • 0
    @ 2009-06-11 21:38:56

    program fangcheng;

    var

    a,b,c,d:real;t:integer;

    function js(x:real):real;

    begin

    js:=a*x*x*x+b*sqr(x)+c*x+d;

    end;

    var

    x:integer;

    x1,x2,xx:real;

    begin

    readln(a,b,c,d);

    t:=0;

    for x:=-100 to 100 do

    begin

    x1:=x;

    x2:=x+1;

    if js(x1)=0 then

    begin

    write(x1:0:2,' ');

    inc(t);

    if t=3 then halt;

    continue;

    end;

    if js(x1)*js(x2)>=0 then continue;

    if js(x1)*js(x2)=0.01 do

    if js(xx)*js(x1)

  • 0
    @ 2009-06-05 17:00:36

    小菜AC45题..庆祝一下~~

    二分法才是王道!!!

    //vijos p1116 一元三次方程的求解 二分法 2009.6.5

    #include

    #include

    #include

    #define e 0.001

    float a,b,c,d;

    using namespace std;

    inline bool f(float& x)

    {return a*x*x*x + b*x*x + c*x + d > 0;}

    void g(float left , float right , bool& f1 , bool& f3)

    {

    float middle = (right - left)/2;

    if(middle < e) {coutd;

    float x1=-101, x2=-100;

    bool f1, f2 = f(x2);

    int i=-100;

    while(++i

  • 0
    @ 2009-05-28 20:01:02

    var

    x:integer;

    a,b,c,d,x1,x2,xx:extended;

    function f(x:extended):extended;

    begin

    f:=((a*x+b)*x+c)*x+d;

    end;

    begin

    read(a,b,c,d);

    for x:=-100 to 100 do

    begin

    x1:=x;x2:=x+1;

    if f(x1)=0 then write(x1:0:2,' ')

    else if f(x1)*f(x2)=0.005 do

    begin

    xx:=(x1+x2)/2;

    if f(x1)*f(xx)

  • 0
    @ 2009-04-30 22:02:05

    看罢各位牛人的讲解,感到极度郁闷,早知如此,何必分治?

    ---|---|---|---|---|---|---|---|---|---|---|

    var a,b,c,d:real;

    v:array[-10000..10000]of boolean;

    function ff(x:real):real;

    begin

    ff:=a*x*x*x+b*x*x+c*x+d;

    end;

    procedure find(a,b:real);

    var k:longint;f1,f2,f3:real;

    begin

    f1:=ff(a);

    f2:=ff(b);

    if (abs(f1)

  • 0
    @ 2009-04-29 22:33:07

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    的确呀

  • 0
    @ 2009-04-24 23:12:28

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    吸取前人的经验果然效果显著!!!

    orz

  • 0
    @ 2009-04-22 22:00:47

    program yyscfc;

    var

    a,b,c,d,p,q:real;

    x:array[1..3]of real;

    i:integer;

    procedure yunsuan;

    begin

    repeat

    begin

    p:=p+0.001;

    q:=p+0.001;

    end;

    until ((a*p*p*p+b*p*p+c*p+d)*(a*q*q*q+b*q*q+c*q+d))=0.5 then x[i]:=(int (p*100))/100+0.01 else x[i]:=(int (p*100))/100;

    end;

    begin

    readln(a,b,c,d);

    p:=-100.001;

    for i:=1 to 3 do yunsuan;

    writeln(x[1]:3:2,' ',x[2]:3:2,' ',x[3]:3:2);

    end.

    竟然要求四舍五入

    郁闷

  • 0
    @ 2009-03-24 18:19:56

    一个For循环就可以了

    另外注意精度问题

    遇到一台没法Debug的电脑……交了好多次……哭……

  • 0
    @ 2009-03-14 22:49:32

    program dd;

    var

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

      i:longint;

    begin

    read(a,b,c,d);

    for i:=-10000 to 10000 do begin

      x:=i/100;

      if abs(a*x*x*x+b*x*x+c*x+d)

  • 0
    @ 2009-03-06 00:54:23

    直接穷举20000种可能,一个接一个试,11行结束战斗

    穷举循环:

    for(i=-100;i

  • 0
    @ 2009-02-26 18:12:40

    思路:1.读入a,b,c,d;2用数学方法列条件求解。

  • 0
    @ 2009-02-16 22:25:51

    program yiyuansancifancheng;

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

    i:integer;

    function f(x:real):real;

    begin

    f:=a*x*x*x+b*x*x+c*x+d;

    end;

    begin

    readln(a,b,c,d);

    x:=-100;

    for i:=1 to 3 do

    begin

    repeat

    s:=f(x);

    if abs(s)

信息

ID
1116
难度
5
分类
搜索 | 枚举 点击显示
标签
递交数
7804
已通过
2838
通过率
36%
被复制
14
上传者