dinic最后一个点莫名MLE怎么破

P4001 [ICPC-Beijing 2006] 狼抓兔子

换行被吞掉了。。。。
by noble_ @ 2018-05-03 20:25:39


应该是$vector$的锅
by Arcturus1350 @ 2018-05-03 20:35:54


因为$vector$的动态内存分配。 可能$vector$最后分配了$2^{x}$的内存。 然而你只用了$2^{x-1}+1$个。 $vector$分配内存的方法是如果当前满了的话就直接申请二倍空间。 $eg.$ 现在已经申请了$m$个$edge$。如果用满了的话就会再申请当前长度的内存,也就是长度变为了$2m$。如果当$m$比较大的时候你$2^{m}$不够用,但是你只需要$2^{m-1}+1$个内存的话。就会有很多内存浪费。导致$MLE$或者$RE$ $QWQ$喵~
by Arcturus1350 @ 2018-05-03 20:42:02


@[noble_](/space/show?uid=36281)
by Arcturus1350 @ 2018-05-03 20:42:11


是的,我也被坑过。
by hellomath @ 2018-05-03 21:31:46


@[larryzhong](/space/show?uid=20438) 然而本宝宝不会用$vsctor$
by Arcturus1350 @ 2018-05-03 21:45:12


@[cn:苏卿念](/space/show?uid=57699) 谢谢,我把vector改掉后A了
by noble_ @ 2018-05-05 14:29:36


|