UOJ Logo oscar的博客

博客

玄学的LCT写法

2017-10-28 11:56:30 By oscar

之前做魔法森林,提交了一个看起来错误的代码,发现通过了就没再管

后来再做别的LCT题时发现新写的代码和之前的代码不一样

唯一不同的函数——cut函数分别为

inline void cut(node *x,node *y)
{
    mkr(x);
    access(y);
    x->pa->rson=0;//老代码
    x->pa=0;
}

inline void cut(node *x,node *y)
{
    mkr(x);
    access(y);
    x->pa->lson=0;//新代码
    x->pa=0;
}

提交记录如下

1.老代码

2.新代码

后来我又尝试把这行不同的代码去掉

还是过了

3.修改后的代码

有没有路过的好心人帮忙解释一下这个代码为什么对,或者为什么错吗?

如果能hack掉那当然是坠吼的

upd1:相同方式修改cut函数后去交动态图连通性仍然是三种都能过

upd2:已解决,感谢各位神犇

评论

Nephren_Ruq_Insania
我觉得这个题的数据很有毒啊。我同学这么交了一次:http://uoj.ac/submission/200640 这都能A掉。 (详见cut函数)
zcysky
我拿您的没删子节点的代码跟我的对拍居然一直没出错……? 可能是因为我的数据是完全随机的……?
huangsi
突然发现我的代码也没有这一句。。。 这题要求维护MST,存放边权的点只会和两个点连边,而且这两条边一定同时加上同时删去。。。 这样的话这个点删掉以后就再也不用了。
EtaoinWu
LOJ121&122的data很弱的...楼主能加强的话能给一组么

发表评论

可以用@mike来提到mike这个用户,mike会被高亮显示。如果你真的想打“@”这个字符,请用“@@”。