为什么hash跑不过map啊?

P3370 【模板】字符串哈希

@[Saka_Noa](/user/498612) 出题人会卡哈希,最坏情况可以卡到每次插入/查询 $O(n)$,map 卡不掉,每次都是 $O(n\log n)$
by Special_Tony @ 2023-09-26 08:34:36


@[sz_mane](/user/743373) 谢谢
by Saka_Noa @ 2023-09-26 08:39:07


@[Saka_Noa](/user/498612) @[sz_mane](/user/743373) 但是这里手写的哈希最多卡 WA 不是 TLE,代码是严格 $O(n\log n)$。
by xyf007 @ 2023-09-26 09:11:52


@[xyf007](/user/68273) 我的意思是,出题人原本可以卡,但是出题人没卡
by Special_Tony @ 2023-09-26 09:23:29


`std::map` 调用 `std::string::operator<` 函数,只需要比对到第一位不相同的位置就跳出了,而且单纯比对字符也比乘法快,因而单论常数可能会比哈希表快很多。 卡哈希表也不至于,真要卡你可以卡的你爹妈不认,别说耗费时间长了,直接把你卡成零分也不成问题。本题无意卡哈希,这不是哈希模板吗?
by Terrible @ 2023-09-26 09:24:04


你们俩在说啥
by FerventTemp0 @ 2023-09-26 09:36:24


差距不大。评测波动。
by _•́へ•́╬_ @ 2023-09-26 10:29:39


@[Terrible](/user/195942) 卡hash也没那么好卡吧?hash函数别太常规不容易被卡吧?
by Zzz_yigui @ 2023-10-17 10:16:57


https://codeforces.com/blog/entry/4898
by Mr_Min @ 2023-11-09 10:59:53


|