关于时间复杂度
查看原帖
关于时间复杂度
1203411
Louis_lxy楼主2024/8/27 11:09

一种个人感觉是错解的做法。

首先,我们可以想到一种非常暴力的做法,直接枚举 aa、bb、cc、dd。开个三维布偶数组判断是否存在这个三元组。这样做时间是 n4n^4 的,空间是 n3n^3 的。时空双爆炸。

然后可以想到一种神奇的优化,我们再开三个二维布偶数组,分别判断:

  1. 是否存在一个三元组 (x,y,?)(x,y,?)。
  2. 是否存在一个三元组 (x,?,y)(x,?,y)。
  3. 是否存在一个三元组 (?,x,y)(?,x,y)。

然后进行剪枝。但是这样空间会爆炸,因为是 n3n^3 的。于是我们可以联想到哈希,我们对后两个维度来个二次哈希(即对哈希后的值哈希),然后就可以了,注意用这种做法可能需要卡常。

然后这种做法就 AC 了,不知到为什么?有没有神犇可以将这种做法卡到 T?或者证明复杂度正确。

2024/8/27 11:09
加载中...