题解

59 条题解

  • 0
    @ 2008-10-05 17:17:04

    矩阵求解:

    对于FB**数列用JZ有个很好的方法,快速幂。。下面我来介绍一下:

    a b 0 1

    [ ] [ ]=[(a b)(0 1) (a b)*(1 1)]

    a b 1 1

    做一次的时间复杂度为O(4)。若做N次为o(4N)

    这样一次JZ*法就可以做一次递推。。对于JZ乘没有交换率,但有结合率。

    故有[a b]^(x+y)=[a b]^x * [a b]^y 对于满足结合率的算法我们有个经典的求解过程(不会的去看麦森树)快速幂。这样就可以保证在log 2 N的次完成任务

    故时间复杂度为o(4*log 2 n)。。

    N介JZ在递推里有深刻的应用。若想深入了解查看好象是杨弋大牛的论文。。

  • 0
    @ 2008-10-05 15:18:20

    二分? 线形!

  • 0
    @ 2008-10-05 01:30:01

    感谢上苍啊.............

    一个二分查找

    打了一天

    然后询问大牛

    遭到强烈鄙视

    哎.........

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    基本就是快排+二分+高精度

  • 0
    @ 2008-10-04 23:28:50

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    太疯狂了!!我编了131行才完工……(先写了两个程序,再合并了一下,(*^__^*) 嘻嘻……)

    第一次提交90,后来把万进制改成十万进制,就AC了!

  • 0
    @ 2008-10-04 10:05:29

    编译通过...

    ├ 测试数据 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-10-03 22:43:22

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    诡异的评测机,考试时0msAC,早上交了三次,一次80,2次90,全是超时,通过率降啊!

    个人意见,快排+高精,矩阵不会用。不过鄙人压了十万位的高精度。。

    觉得二分没快排+线性遍历来得方便

  • 0
    @ 2008-10-03 22:25:51

    评测器不稳定,白白浪费了我的通过率

  • 0
    @ 2008-10-03 22:13:20

    ---| 第1题 ---|---|---|---|---|---|---|---|---|---|---|--

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

    Unaccepted 有效得分:60 有效耗时:41ms

    谁知道错误号128是什么意思

  • 0
    @ 2008-10-04 12:16:23

    二分+高精

    我高精用qword 15位1存...

    编译通过...

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

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

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

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

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

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

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

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

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

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

  • 0
    @ 2008-10-03 20:04:12

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

  • 0
    @ 2008-10-03 19:24:46

    先QSORT排好所有车子的名字,如果你怕二分出错,就用个数组记下以['A..'z']开头的车名的第一个位置,以后每次只要从这个位置开始搜就可以了,当搜完了以这个字母开头的车名就可以退出了,因为再搜下去也没意义.

    至于第二步,如果看不出请用搜索模拟一下,如果你看到一串数字1,1,2,3,5,8,13..还无动于衷,那你干脆就别学了.就是这样,菲薄那切数列,不过这数列的第10000个数着实大的令人恐怖!想AC就写高精吧,又不是没写过.裸高精要超时,可以用万进制.还有一点小小的建议,做高精时最好不用MOD 求余运算在PASCAL里实在太慢了,数据大了就看的出..^_^

  • 0
    @ 2008-10-03 19:14:32

    别考虑太多了,韵韵想多次玩同一个车就让她去玩。

  • 0
    @ 2008-10-03 19:12:37

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

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

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

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

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

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

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

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

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

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

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

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

    晕,考试时死活没有想到要二分一下。。。。

  • 0
    @ 2008-10-03 16:22:25

    命苦啊

    考试时居然没想到用高精.....

    二分+高精度=AC

  • 0
    @ 2008-10-03 15:54:34

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    一次的,呵呵!

  • 0
    @ 2008-10-03 15:42:30

    暴力就能ac?考试时咋就t了呢?

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

    谁的程序比我慢???

  • 0
    @ 2008-10-03 15:18:20

    囧Orz

    为了调试忘记把去掉的"m"补进去了

  • 0
    @ 2008-10-03 14:23:16

    也是同样的程序,一次90一次ac(还是全部0ms的)呵呵~~

    用一个数组p:array['A'..'z'] of longint;p[c]表示以c开头的最小字符串的起始位子然后从p[c]开始往下找,一直到找到符合的或者比当前的字符串大的~~

  • 0
    @ 2008-10-03 14:16:46

    同样的程序,同样的评测机,不一样的结果.

    WA1...WA2...WA3...AC....

    ???

  • 0
    @ 2008-10-03 14:14:26

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    同样的 评测机,同样的代码,两次90,第三次AC!

信息

ID
1458
难度
6
分类
字符串 | 线性代数 | 矩阵乘法高精度 点击显示
标签
递交数
522
已通过
127
通过率
24%
被复制
2
上传者