关于我的网络流模板代码,可以在这里找到,喜欢就给个star吧。
网络流本质是一类特殊的线性规划,满足性质:
- 容量限制
- 流量平衡
三大自动机排名最后的自动机:回文自动机。
为什么排名最后?因为实在没什么太多的用处。
回文自动机又称为回文树,它们是一个含义。
在一些一对一游戏的比赛(如下棋、乒乓球和羽毛球的单打)中,我们经常会遇到$A$胜过$B$,$B$胜过$C$而$C$又胜过$A$的有趣情况,不妨形象的称之为剪刀石头布情况。有的时候,无聊的人们会津津乐道于统计有多少这样的剪刀石头布情况发生,即有多少对无序三元组$(A,B,C)$,满足其中的一个人在比赛中赢了另一个人,另一个人赢了第三个人而第三个人又胜过了第一个人。注意这里无序的意思是说三元组中元素的顺序并不重要,将$(A,B,C)$、$(A,C,B)$、$(B,A,C)$、$(B,C,A)$、$(C,A,B)$和$(C,B,A)$视为相同的情况。
有$N$个人参加一场这样的游戏的比赛,赛程规定任意两个人之间都要进行一场比赛:这样总共有场比赛。比赛已经进行了一部分,我们想知道在极端情况下,比赛结束后最多会发生多少剪刀石头布情况。即给出已经发生的比赛结果,而你可以任意安排剩下的比赛的结果,以得到尽量多的剪刀石头布情况。
发生了火警,所有人员需要紧急疏散!假设每个房间是一个$N\times M$的矩形区域。每个格子如果是
.,那么表示这是一块空地;如果是X,那么表示这是一面墙,如果是D,那么表示这是一扇门,人们可以从这儿撤出房间。已知门一定在房间的边界上,并且边界上不会有空地。最初,每块空地上都有一个人,在疏散的时候,每一秒钟每个人都可以向上下左右四个方向移动一格,当然他也可以站着不动。疏散开始后,每块空地上就没有人数限制了(也就是说每块空地可以同时站无数个人)。但是,由于门很窄,每一秒钟只能有一个人移动到门的位置,一旦移动到门的位置,就表示他已经安全撤离了。现在的问题是:如果希望所有的人安全撤离,最短需要多少时间?或者告知根本不可能。
现有$n$个太空站处于地球与月球之间(编号$1\ldots n$),$m$艘公共交通太空船在其中来回穿梭,每个太空站$S_i$可容纳无限的人,每艘太空船$p_i$只可容纳$H_{p_i}$人。对于每一艘太空船$p_i$,将周期性地停靠一系列的太空站($S_{i_1},S_{i_2},\ldots,S_{i_r}$),如:($1,3,4$)表示停靠太空站$1\,3\,4\,1\,3\,4\,1\,3\,4\ldots。任一艘太空船从任一个太空站驶往另一个任意的太空站耗时为$1$。人只能在太空船停靠太空站(或地球、月球)时上船或下船。初始时的人全在地球上,太空船全在初始站(太空船$p_i$处于$S_{i_1}$),目标是让所有的人尽快地全部转移到月球上。