这笔记本真差劲。。比起surface book差了老远。。
我到现在除了能在本地用Vim写个程序以外还啥也不能干。。。
明天最后试试Win10能不能装成功,反正win7要想装成功非常困难。
培训之前肯定把这事弄好。
Dinic
算法实现很简单,主要是想明白其正确性,由于每次都会分层,所以最后还是能找到所有的增广路,根据增广路定理最后得到的就是最大流。
我不明白为啥分了层就优化到$O(n^2m)$了。
还加了个多路增广,懒得加当前弧优化了。
Code:
1 | // luogu-judger-enable-o2 |
然后顺便学习了最小费用最大流,用的EK+SPFA.
没看懂DIjkstra的势是怎么证明正确性的然后就没学
其实思想很简单,我们始终找源点到汇点的在边有流量的情况下(不管多少)的最短路,然后更新。直到没有增广路。由增广路定理可知此时达到最大流,由于一直走的最短路寻找增广路,所以由贪心可知(很简单的反证)此时费用达到最小。
Code:
1 | // luogu-judger-enable-o2 |
好像费用流有更快的算法,不过网络流最重要的又不是写板子。。。
接下来可能会学完左偏树,LCT,真希望不要退役啊。
不退役我还会认认真真学完算导和具体数学。可能还会在多学一点数学知识。
(退役了补文化课也不是很糟糕的感觉