关于此题的迷之WA,TLE,AC((

P6136 【模板】普通平衡树(数据加强版)

Piwry @ 2020-05-18 21:05:02

有点长,不想看的可以先看这里:我怀疑板子打错了或者题目有玄学问题,所以想知道有没有人复现了这种问题,或者能找到板子中的错误(我真的找不出了...还没法复现问题(

代码是splay,有些压行(不过同样使代码比较短)

基本上就是改几个无关紧要的代码段(如rank时是否splay),就会出现在不同的点 AC/TLE/WA 的情况

这是最后卡过的代码

这是作为基础一开始的代码

这里有一个在 TLE/AC 徘徊的例子(大概)

A1, A2, A3

代码完全一样,都开了O2,只是最后一次是 C++11

这里有一个加/不加了求某数rank时的splay导致AC ->WA/OLE的例子(大概)(OLE是我的调试代码,是检测(按理)不可能的“越界”情况的,然而不知为何输不输出完全取决求某数rank的splay(

B1, B2, B3

其他的可以去查询我的提交记录,这些情况不一定需要开O2才会出现

.

最主要的疑惑是在 WA 和 AC 间的徘徊(例子:WA, AC, 两者只差了 1.是否有调试语句 2.是否在rank splay 3.是否在pre(内部使用的查找前驱)中判定当没有元素时返回0(按理来说不会有这种情况))

这导致我严重怀疑我splay板子错了,但最后改改奇怪的部分却就过了,一开始的代码也是能过另外一道平衡树模板...

<<想要通过模板题熟练板子的我大概完全做错了(>>


by Piwry @ 2020-05-18 21:07:31

最后 WA,AC 例子的调试语句就是指单纯的是否输出调试信息...我连外面的 if 都没动(

懒得搜索我的话这里有超链接


by UltiMadow @ 2020-05-18 21:14:14

写替罪羊啊,splay最好的模板不是这个吧(

至少窝splay没过()


by Piwry @ 2020-05-18 21:19:18

@UltiMadow

啊这,我考虑写些其他的平衡树了

主要是 splay 功能太多导致我不想学其他的...


by UltiMadow @ 2020-05-18 21:25:41

@Piwry splay 慢啊()

一般用不到splay的特殊功能就尽量不写罢

splay 个人感觉挺难写的(


by Piwry @ 2020-05-18 21:32:18

@UltiMadow

啊这,我感觉挺简单的

极有可能是我没写过其他平衡树)

话说我之前还看到几篇文章说 splay 时间不会高太多来着..


by Semsue @ 2020-05-19 18:02:49

@UltiMadow 不学Splay怎么写LCT


by UltiMadow @ 2020-05-19 18:31:54

@Flying_Bird 没说不学啊,我的意思是能不用就不用(


by Semsue @ 2020-05-19 18:32:32

@UltiMadow 话说您会吗?要不来帮我调调吧(


by UltiMadow @ 2020-05-19 19:03:06

@Flying_Bird 我splay也没过去啊/kk


by Semsue @ 2020-05-19 19:07:04

@UltiMadow 我过去了。。。


| 下一页