我翻看自己以前的代码的时候,发现了一个明显错误的修改节点权值的操作:
lct.nodes[x].v=y;
lct.pushup(x);
正确写法应该是:
lct.splay(x);
lct.nodes[x].v=y;
lct.pushup(x);
并且用一组很小的数据就可以卡掉:
5 7
1 2 3 4 5
1 1 2
1 2 3
1 3 4
1 4 5
0 1 5
3 3 100
0 1 5
正确输出:
1
102
错误输出:
1
1
然而这个错误写法在今天早上8:26居然还能AC
AC记录链接