有点长,不想看的可以先看这里:我怀疑板子打错了或者题目有玄学问题,所以想知道有没有人复现了这种问题,或者能找到板子中的错误(我真的找不出了...还没法复现问题(
代码是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板子错了,但最后改改奇怪的部分却就过了,一开始的代码也是能过另外一道平衡树模板...
<<想要通过模板题熟练板子的我大概完全做错了(>>