acgo题库
  • 首页
  • 题库
  • 学习
  • 天梯
  • 备赛

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
  • 资讯
  • 竞赛
  • 讨论
  • 团队
  • 商城
登录
注册
题目详情提交记录(0)
  • 题解

    ACGO 不知道发啥电把原题链接弄没了,还要我手动加。 Problem:A93177 Difficulty:4.8 / Medium+ Tag:随机化 朴素矩乘是 O(n3)O(n^3)O(n3) 的,不朴素矩乘是 O(n2.7)O(n^{2.7})O(n2.7) 的,那咋办? 注意矩阵有两个性质: * ABC=A(BC)ABC=A(BC)ABC=A(BC)。 * 若 AC=BCAC=BCAC=BC,则 A=BA=BA=B。 所以我们可以构造一个 n×1n\times 1n×1 的向量 DDD,分别算出 ABDABDABD 和 CDCDCD,判断这两个结果是否相等。由于矩阵乘向量是 O(n2)O(n^2)O(n2) 的,所以这样做就是 O(n2)O(n^2)O(n2) 的。 那如何构造呢?答案是随机! 很简单,因为向量的每一个值都相当于 nnn 个乘积相加模 998244353998244353998244353,这么做和字符串哈希很像,这个卡掉的概率也和随机底数下构造两个字符串让它们哈希冲突的概率差不多,为 n998244353\frac{n}{998244353}998244353n ,几乎不可能。 时间复杂度:O(n2)O(n^2)O(n2)。

    userId_undefined
    cjdst
    尊贵铂金CSP-S一等奖代码纠察员出题人
    6阅读
    0回复
    1点赞
暂无数据

提交答案之后,这里将显示提交结果~

首页