对max_flow做一个总结
1.目前做了有关最大流的题目:做得比较急所以可能有些东没有理解清楚。
2.无向图双向建边然后临接矩阵实现,临接表超时。但是对于那种边不是很复杂的用临接表建的话会很清楚。
3.很少用到临接表的ek算法,对于边很多的用dinic算法的临接矩阵实现。
4.拆点,如果一个顶点有容量限制,例如逃跑那道题每个口只能允许一个人跑,就拆点成两个然后连边,因为每个点都可以跑所以每个点都拆,然后跑一遍最大流,第五题,泰坦尼克号有限制的拆点,漂浮的薄冰可以拆,拆完之后的点的出边由拆点引出,然后跑一遍dinic算法。
5.二分匹配的输入输出要学会提高,peek函数,line[0xff]的运用到存储字符串,把匹配任务拆分,匹配不仅可以从计算机引出还可以从任务引出。
6.插线板那道题目,之间的关系要搞清楚,已经存在的插线板和能插的插头,适配器的无限数量。
7.临接表/矩阵建边,注意超级源点超级汇点,注意二分匹配,注意拆点,那个点该拆(发现都是在矩阵里面有一定的对应关系的拆点。)
所有的输入都可以借助一种转换算法:: 就像编译原理里面所阐述的一种思想:转换转换转换。
int find(char *ch) { for(int i=0;i<tmp;i++) { if(strcmp(name[i],ch)==0) return i; } strcpy(name[tmp],ch); return tmp++; }
还有做一种总结:我尝试了一种突破性的选课,发现不应该这么做。
因为我没有基础而且一开始状态不太好,我没有遵循循序渐进的思想,一点一点把基础打好打牢。
接下来两年专攻全栈工程师方向,把这个方向做到卓越,然后就是自己的路咯。
活在现实,做在梦里。