110 条题解

  • 0
    @ 2009-07-15 09:24:36

    最后一个点怎么回事?

  • 0
    @ 2009-07-13 15:39:37

    这题是纯数学,设k天后两人相遇,则问题变成了求同余方程x+kn≡y+km (mod L)。

    稍微整理一下,得到k(n-m)≡y-x (mod L) 的形式,其中k是未知数,所以就变成了

    求形如 ax≡b(mod n)的最小正整数解x。

    在处理时,无解直接就输出impossible,同时需要注意变量的正负和上限。

    答案的4开始我也搞不清,后来才明白,其实是向右走,不是向左走⊙﹏⊙

  • 0
    @ 2009-07-10 20:36:46

    晕,向西竟向右走...

  • 0
    @ 2009-07-06 20:16:58

    n*k mod l +y=m*k mod l +x?

  • 0
    @ 2009-07-01 08:58:35

    var

    a,ans,b,i,l,m,n,t1,t2,t3,temp,x,y:int64;

    procedure swap(var a,b:int64);

    var

    temp:longint;

    begin

    temp:=a;

    a:=b;

    b:=temp;

    end;

    function exgcd(a,b:int64;var t1,t2:int64):int64;

    var

    temp:longint;

    begin

    if b=0 then

    begin

    exgcd:=a;

    t1:=1;

    t2:=0;

    exit;

    end;

    exgcd:=exgcd(b,a mod b,t1,t2);

    temp:=t1;

    t1:=t2;

    t2:=temp-(a div b)*t2;

    end;

    begin

    readln(a,b,m,n,l);

    a:=a mod l;

    b:=b mod l;

    m:=m mod l;

    n:=n mod l;

    if m

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

    编译通过...

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

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

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

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

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

    ├ 测试数据 06:答案正确... 916ms

    ├ 测试数据 07:答案正确... 41ms

    ├ 测试数据 08:答案正确... 931ms

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

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

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

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

    数学题……不过时间怎么这么险啊……

  • 0
    @ 2009-04-26 16:04:51

    切记要INT64啊!

  • 0
    @ 2009-04-06 18:34:37

    编译通过...

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

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

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

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

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

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

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

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

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

    ├ 测试数据 10:答案错误... ├ 标准行输出

     ├ 错误行输出

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

    Unaccepted 有效得分:90 有效耗时:0ms

    最后一组数据是怎么回事啊!!!!!!!!!

  • 0
    @ 2009-02-08 21:41:32

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    一遍秒杀

    这题是纯数学,设k天后两人相遇,则问题变成了求同余方程x+kn≡y+km (mod L)。

    稍微整理一下,得到k(n-m)≡y-x (mod L) 的形式,其中k是未知数,所以就变成了

    求形如 ax≡b(mod n)的最小正整数解x。

    在处理时,无解直接就输出impossible,同时需要注意变量的正负和上限。

    答案的4开始我也搞不清,后来才明白,其实是向右走,不是向左走⊙﹏⊙

  • 0
    @ 2009-01-02 18:09:21

    答案的4是怎么来的

  • 0
    @ 2008-12-31 13:40:50

    竟然经度能比L大 无语中。。。。

  • 0
    @ 2008-12-17 13:36:03

    #include

    int main()

    {

    program aa;

    var xx,yy,m,n,l,d,ans,t,tt,p,x,y,ttt:int64;

    function egcd(a,b:int64;var x,y:int64):int64;

    begin

    if b=0 then

      begin

       egcd:=a;

       d:=a;

       x:=1;

       y:=0;

      end

    else

      begin

       egcd(b,a mod b,x,y);

       t:=x;//x'

       x:=y;//y'

       y:=t-(a div b)*x;

      end;

    end;

    begin

    readln(xx,yy,m,n,l);

    ans:=-1;

    tt:=(yy-xx) mod l;

    egcd(m-n,l,x,y);

    if (tt mod d0) then begin writeln('Impossible'); halt;end;

    x:=x*(tt div d);

    x:=x-(x div l)*l;

    while x0 do x:=x-l;

    writeln(x);

    end.

    return 0;

    }

  • 0
    @ 2008-12-13 21:17:34

    program aa;

    var xx,yy,m,n,l,d,ans,t,tt,p,x,y,ttt:int64;

    function egcd(a,b:int64;var x,y:int64):int64;

    begin

    if b=0 then

      begin

       egcd:=a;

       d:=a;

       x:=1;

       y:=0;

      end

    else

      begin

       egcd(b,a mod b,x,y);

       t:=x;//x'

       x:=y;//y'

       y:=t-(a div b)*x;

      end;

    end;

    begin

    readln(xx,yy,m,n,l);

    ans:=-1;

    tt:=(yy-xx) mod l;

    egcd(m-n,l,x,y);

    if (tt mod d0) then begin writeln('Impossible'); halt;end;

    x:=x*(tt div d);

    x:=x-(x div l)*l;

    while x0 do x:=x-l;

    writeln(x);

    end.

  • 0
    @ 2008-11-07 20:09:06

    第十个点为何wa!!!

    var xx,yy,m,n,l,d,ans,t,tt,p,x,y,ttt:int64;

    function egcd(a,b:int64;var x,y:int64):int64;

    begin

    if b=0 then

    begin

    egcd:=a;

    d:=a;

    x:=1;

    y:=0;

    end

    else

    begin

    egcd(b,a mod b,x,y);

    t:=x;//x'

    x:=y;//y'

    y:=t-(a div b)*x;

    end;

    end;

    begin

    readln(xx,yy,m,n,l);

    ans:=-1;

    tt:=(yy-xx) mod l;

    egcd(m-n,l,x,y);

    if (tt mod d0) then begin writeln('Impossible'); halt;end;

    x:=x*(tt div d);

    x:=x-(x div l)*l;

    while x0 do x:=x-l;

    writeln(x);

    end.

  • 0
    @ 2008-11-04 19:46:57

    Flag   Accepted

    题号   P1009

    类型(?)   数论 / 数值

    通过   444人

    提交   3544次

    通过率   13%

    难度   2

    好囧啊。。。。。

  • 0
    @ 2008-10-29 00:46:27

    编译通过...

    ├ 测试数据 01:运行时错误...|错误号: 1999999999

    ├ 测试数据 02:运行时错误...|错误号: 124

    ├ 测试数据 03:运行时错误...|错误号: 2555

    ├ 测试数据 04:运行时错误...|错误号: 56

    ├ 测试数据 05:运行时错误...|错误号: 1675670875

    ├ 测试数据 06:运行时错误...|错误号: 218799629

    ├ 测试数据 07:运行时错误...|错误号: 1048155340

    ├ 测试数据 08:运行时错误...|错误号: 1164530415

    ├ 测试数据 09:运行时错误...|错误号: 141786758

    ├ 测试数据 10:运行时错误...|错误号: 326330800

  • 0
    @ 2008-10-08 18:39:01

    [ALIGN=center]文字段落[/ALIGN]

    [code]

    var a,b:longint;

    begin

    read(a,b);

    writeln('a+b');

    end.

    [/code]

  • 0
    @ 2008-10-03 20:51:44

    这个不定方程有系数的负的,那最大公约数是什么?负的?最大公约数的定义不是在自然数之间么?如果定义域是实数集,那正数和负数的最大公约数符号又是什么?---|--

    恼人的数论啊!!!!!!!!!!!~&~&!&~&!&~&~&&~~

    终于-finally-in the end-at last我终于AC了,活生生地把这题的通过率从13拉到12,AC后又拉回13,自己的通过率降了3点,啊

  • 0
    @ 2008-09-24 19:12:20

    编译通过...

    ├ 测试数据 01:答案错误... ├ 标准行输出

     ├ 错误行输出

    ├ 测试数据 02:答案错误... ├ 标准行输出

     ├ 错误行输出

    ├ 测试数据 03:运行超时...

    ├ 测试数据 04:运行超时|格式错误...

    ├ 测试数据 05:运行超时...

    ├ 测试数据 06:运行超时...

    ├ 测试数据 07:运行超时...

    ├ 测试数据 08:运行超时...

    ├ 测试数据 09:运行超时...

    ├ 测试数据 10:运行超时...

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

    Unaccepted 有效得分:0 有效耗时:0ms

    var

    t,i,j:longint; x,y,m,n,l:qword;

    begin

    readln(x,y,m,n,l);

    if m=n then begin write('Impossible');halt;end;

    if m>n

    then begin

    t:=y-x;

    j:=m-n;

    repeat

    if t-1000000*j>=0

    then begin inc(i,1000000);t:=t-1000000*j;end

    else if t-100000*j>=0

    then begin inc(i,100000);t:=t-100000*j;end

    else if t-10000*j>=0

    then begin inc(i,10000);t:=t-10000*j;end

    else if t-1000*j>=0

    then begin inc(i,1000);t:=t-1000*j;end

    else

    if t-100*j>=0

    then begin inc(i,100);t:=t-100*j;end

    else begin inc(i); t:=t-j; end;

    until t=0

    then begin inc(i,1000000);t:=t-1000000*j;end

    else if t-100000*j>=0

    then begin inc(i,100000);t:=t-100000*j;end

    else if t-10000*j>=0

    then begin inc(i,10000);t:=t-10000*j;end

    else if t-1000*j>=0

    then begin inc(i,1000);t:=t-1000*j;end

    else

    if t-100*j>=0

    then begin inc(i,100);t:=t-100*j;end

    else begin inc(i); t:=t-j; end;

    until t

信息

ID
1009
难度
8
分类
数论 点击显示
标签
递交数
7019
已通过
1067
通过率
15%
被复制
33
上传者