题解

167 条题解

  • 0
    @ 2009-04-13 10:54:44

    第一次写运算符重载。。

    除法直接二分结果(我比较猥琐)

  • 0
    @ 2009-07-13 11:06:38

    数据太大了,肯定要高精度!!!!!!!!!!!!!!!!!

    即使用Qword直接gcd也只能得50分!!!!!!!!!!!!!

    题号   P1047

    类型(?)   数论 / 数值

    通过   313人

    提交   3956次

    通过率   8%

  • 0
    @ 2009-03-30 20:09:41

    变态题高精加、高精减、高精乘、高精MOD、高精DIV,怪不得froger大牛有393行,而且只有8%的通过率

    • @ 2017-02-08 17:04:17

      用python看起来也就那么几行呀?

  • 0
    @ 2009-05-30 20:34:34

    Var

    a,b,c,e,f,g:Int64;

    Begin

    Readln(a,b);

    e:=a;f:=b;g:=0;

    c:=0;c:=a Mod b;

    While c0 Do

    Begin

    a:=b;

    b:=c;

    c:=a Mod b;

    End;

    e:=e Div b;

    f:=f Div b;

    g:=e*f*b;

    Writeln(g);

    End.

    编译通过...

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

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

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

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

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

    ├ 测试数据 06:运行时错误...| 错误号: 106 | 无效数字格式

    ├ 测试数据 07:运行时错误...| 错误号: 106 | 无效数字格式

    ├ 测试数据 08:运行时错误...| 错误号: 106 | 无效数字格式

    ├ 测试数据 09:运行时错误...| 错误号: 106 | 无效数字格式

    ├ 测试数据 10:运行时错误...| 错误号: 106 | 无效数字格式

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

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

    求高手帮忙看看哪儿错了,谢!

  • 0
    @ 2009-03-27 19:50:14

    直接高精度加GCD递归是不可以的,有3个数据说202错误………………

    郁闷了我5次才AC

  • 0
    @ 2009-03-21 11:39:23

    终于过了!!!!!

    我的高精度除法阿~~~

    把a*b/gcd(a,b)改成 a/gcd(a,b)*b 再优化了半天才过的..

  • 0
    @ 2009-03-02 16:54:24

    模板的力量!!

  • 0
    @ 2009-02-27 16:04:53

    var c,e,f,g:longint;

      a,b,d,h:qword;

    begin

    readln(e,f);

    a:=e;

    b:=f;

    d:=a-1;

    repeat

      d:=d+1;

      if (d mod a=0) and (d mod b =0) then begin

       writeln(d);

       break;

      end;

    until d=a*b;

    end.

  • 0
    @ 2009-02-22 09:37:38

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

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

    怎么会是难度2~~~的题~~~

    惊人的通过率...

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

    Flag   Accepted

    题号   P1047

    类型(?)   数论 / 数值

    通过   270人

    提交   3252次

    通过率   8%

    难度   2

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

    第270个

  • 0
    @ 2009-02-21 10:32:06

    以为100位乘100位只有200位,开了200的数组,WA了。。。改1000,就AC。

  • 0
    @ 2009-02-11 20:58:58

    lcm(a,b)=a*b div gcd(a,b)

    gcd(a,b)=gcd(b,a mod b)

    再加上高精度除法就能AC了。

  • 0
    @ 2009-02-13 18:52:28

    个人觉得用这题用更相减损法比辗转相除要好那么一点点...

    对于两个数a,b

    若a,b都是偶数,则两个同时除2

    若a是偶数,则a除2

    若b是偶数,则b除2

    然后如果a>b,则a := a - b

    否则b := b - a

    重复上述过程直到a=b(注意要记下每一步的操作)

    ans := a(或b)

    此时的a(或b,一样)就是原来的gcd ( a , b )

    将a , b 都变成1

    然后从后向前除了的同时除2的操作不管外

    进行逆操作(即原来除的现在乘,原来减的现在加)

    再得到新的a,b

    此时的gcd ( a , b ) = 1

    然后ans := ans * a * b * 2 ^ k就行了

    其中k是先前两数同时除2的次数

    这样的话可以就避免写高精度除高精度和取模了

  • 0
    @ 2009-01-14 15:58:09

    var

    i,j,ans:qword;

    function try(a,b:qword):qword;

    begin

    if b=0 then try:=a

    else try:=try(b,a mod b);

    end;

    begin

    read(i,j);

    ans:=try(i,j);

    ans:=(i*j) div ans;

    writeln(ans);

    end.

  • 0
    @ 2008-12-23 21:12:37

    #include"stfio.h"

    main()

    {int i,n,m;

    scanf("%d%d",&m,&n);

    for(i=m;i

  • 0
    @ 2008-12-12 17:18:43

    一遍AC。全当练练高精度除法。

  • 0
    @ 2008-11-13 19:51:04

    program gongbei(input,output);

    var

    a,b,s:integer;

    begin

    readln(a,b);

  • 0
    @ 2008-11-13 12:56:53

    已知m,n均为正整数

    (1) 计算m*n的积,送临时变量r。

    (2) 若m等于n,则输出最小公倍数r/m,算法结束。

    (3) 若m大于n,计算m-n,结果送m,否则,计算n-m,结果送n。

    (4) 转到(2)或者(3)。

  • 0
    @ 2008-11-13 09:17:50

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

  • 0
    @ 2008-11-13 00:07:53

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    事实再次说明算法才是解决问题效率的关键。

    前几天看了matrix67大牛的一篇文章,讲的是不断的扩大较小数来求最小公倍数,结果就这么编了。。。。。只过3组数据。

    然后拼命优化高精度,。。。。过4组数据。

    然后从网上下了个高精度,再加上除法辅助。。。。。过5组数据

    然后开始想以前怎么求最小公倍数的了,突然想到了:ab最小公倍数=a*b/最大公约数!!!!!!!

    辗转相除法求GCM然后一个高精度乘一个高精度除,秒杀。。。。。

    遇到超时的时候一定要想一想算法,往往都是算法不够高校导致了超时。

  • 0
    @ 2008-11-12 19:06:17

    编译通过...

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

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

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

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

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

    ├ 测试数据 06:运行时错误...| 错误号: 106 | 无效数字格式

    ├ 测试数据 07:运行时错误...| 错误号: 106 | 无效数字格式

    ├ 测试数据 08:运行时错误...| 错误号: 106 | 无效数字格式

    ├ 测试数据 09:运行时错误...| 错误号: 106 | 无效数字格式

    ├ 测试数据 10:运行时错误...| 错误号: 106 | 无效数字格式

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

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

    var

    i,j,ans:qword;

    function try(a,b:qword):qword;

    begin

    if b=0 then try:=a

    else try:=try(b,a mod b);

    end;

    begin

    read(i,j);

    ans:=try(i,j);

    ans:=(i*j) div ans;

    writeln(ans);

    end.

    Flag    Unaccepted

    题号   P1047

    类型(?)   数论 / 数值

    通过   245人

    提交   2754次

    通过率   9%

    难度   2

    提交 讨论 题解

信息

ID
1047
难度
8
分类
高精度 点击显示
标签
(无)
递交数
7401
已通过
774
通过率
10%
被复制
25
上传者