许多题目都可以转化为图论模型
出现频率:每年必考
主要出现在T2,T3
图论知识
- 图的遍历
dfs,bfs均可 - 图的连通性
可以用并查集维护(如果不存在删边操作) - 最短路问题
spfa–代码简洁,资瓷负环,随机数据表现优秀,但可能被卡,O(km),其中k为常数(k取决于出题人良心程度)
堆优化的Dijkstra–稳定,不会被卡,可以用STL中的优先队列和pair,O((n+m)logn)
bfs–只需要遍历一次图,但用处局限,只能无边权或相同边权,O(n+m)
Floyd–简洁,灵活,可以求最小环,有向图传递闭包(若a>b,b>c,则a>c,关系具有传递性。也可以理解为图的连通性) - 拓扑排序
可以用栈,队列,优先队列(字典序最小的拓扑序)等容器维护 - 环
有向图–进行一次拓扑,若失败则有环
无向图–dfs搜一遍
需要注意的地方
细小的错误如n,m打反,详见常见错误表
方法与技巧
- 有向图建立反向图
- 双权值
- 删点/边
- 记录最短路路径
- 泛化点,边
- 部分删边操作可以离线处理变成倒序加边
- 虚拟点,可以化腐朽为神奇,辅助图的联通,来,去边权不同
noip tg组中的图论题目
noip2009 T3 最优贸易
noip2012Day2 T3 疫情控制
noip2013Day1 T3 货车运输
noip2013Day2 T3 华容道
noip2014Day1 T2 联合权值
noip2014Day2 T2 寻找道路
noip2015Day1 T2 信息传递