Ph0en1x Notebook

A step forward every day


  • Home

  • Tags

  • Categories

  • Archives

  • Search

POJ 3436 ACM Computer Factory(ISAP)

Posted on 2018-10-13 | In ACM

ISAP,每台机器都分成两个节点,中间连一条容量为工作效率的边;

如果输入没有1,则和源点连接,输出没有0的和汇点连接;

任意两个点之间输入和输出对应相加没有1则可以连接一条容量为INF的边。

Read more »

POJ 1459 Power Network(ISAP)

Posted on 2018-10-02 | In ACM

ISAP算法模板

最大流增广路算法大致有三个优化等级

  1. EK算法(Edmonds Karp)通过dfs每次在残量网络中找到一条可行的增广路进行增广
  2. Dinic算法 在每次dfs寻找增广路前,先进行一次dfs标号,流量只沿着源点到汇点之间的最短路进行增广,这就相当于给了流一个势能,水只会向下流而不会随处流动,大大所短了EK算法中发现的增广路,提高了效率
  3. ISAP算法,在Dinic算法的基础上进一步优化,并不需要在每次增广前都用bfs重新标号,而是只进行一次标号,之后在一个结点无法增广时才考虑修改节点的标号,同时加入一个gap优化,当某一个标号的节点个数为0时,停止增广,输出最大流。
Read more »

POJ 3020 Antenna Placement(匈牙利算法)

Posted on 2018-10-01 | In ACM

匈牙利算法

Read more »

POJ 3041 Asteroids

Posted on 2018-09-30 | In ACM

匈牙利算法模板

Read more »

POJ 2485 Highways

Posted on 2018-09-29 | In ACM

要求能够让所有节点联通并且最大边权最小的问题,其实求的就是最小生成树的最大边权;

证明:最小生成树的最大边权一定是所有最小生成树中最小的

反证法:假设最小生成树T1的最大边(u, v),和一个非最小生成树T2的最大边(a, b),且(u, v) > (a, b) > T2中的其他所有边

去掉(u, v),最小生成树会形成一个隔,u,v分别在割的两个分量中,且u,v在T2中一定存在一条唯一的路径,又由于u,v在T1中属于不同的分量,所以这条路径中一定存在着某条边两端分别在割的两个分量中,在T1中连上这条边就能够形成新的生成树,且比原来的最小生成树小,矛盾;

Read more »

POJ 3026 Borg Maze

Posted on 2018-09-29 | In ACM

把每个S和A都看成节点,BFS求之间的距离然后套用Prim来计算最小生成树。注意输入有坑,整数输入完后可能有多个空格,要用gets()而不能用getchar()

Read more »

POJ 1258 Agri-Net

Posted on 2018-09-28 | In ACM

Prim模板

Read more »

POJ 1094 Sorting It All Out

Posted on 2018-09-27 | In ACM

拓扑排序,加入一个关系后就判断一次,注意判断排序不能确定后不能马上跳过,还要继续看看会不会形成环

Read more »

POJ 1789 Truck History(Prim)

Posted on 2018-09-26 | In ACM

最小生成树

Read more »

POJ 2240 Arbitrage

Posted on 2018-09-25 | In ACM

SPFA找正环或者用Floyd找自己到自己最长路大于1的点

Read more »
1…456…14
Ph0en1x

Ph0en1x

134 posts
13 categories
69 tags
RSS
© 2018 — 2020 Ph0en1x
UV PV