随笔分类 -  图论

摘要:博主图论比较弱,搜了模版也不会用。。。所以决心学习下tarjan算法。割点和割边的概念不在赘述,tarjan能在线性时间复杂度内求出割边。重要的概念:时间戟,就是一个全局变量clock记录访问结点的时间。一个无向图dfs会形成一个森林,当图只有一个连通分量时,就只有一棵树。由于在无向图中,除了树边,... 阅读全文
posted @ 2015-07-19 21:37 瑞宇 阅读(743) 评论(0) 推荐(0)
摘要:二分图最大匹配问题遇到冰山就把行列拆成两个部分。每个部分x也好,y也好只能匹配一次图画得比较草,将就着看横着扫一遍,竖着扫一遍,得到编号一个位置就对应一个(xi,yi)就是X集到Y集的一条边,由题意,每个点只能被选择一次。所以最大匹配的边数就是答案了。算法过程当增广路不存在的时候,就是二分图最大匹配... 阅读全文
posted @ 2015-07-17 19:22 瑞宇 阅读(543) 评论(0) 推荐(0)
摘要:大体思路是从终点反向做一次BFS得到一个层次图,然后从起点开始依次向更小的层跑,跑的时候选则字典序最小的,由于可能有多个满足条件的点,所以要把这层满足条件的点保存起来,在跑下一层。跑完一层就会得到这层最小的color号。反省:这道题由于有自环和重边的存在,因此满足条件的一个点可能多次被加到队列,这样... 阅读全文
posted @ 2015-06-24 16:54 瑞宇 阅读(1574) 评论(0) 推荐(0)
摘要:第一个A*,纪念下。A*要保证最短路一定要估价函数小于等于实际值,越接近越好估价函数取Manhattan距离除以二。//Rey#include#include#include#includeusing namespace std;const int N = 8;bool C[N][N];struct... 阅读全文
posted @ 2015-06-24 11:35 瑞宇 阅读(280) 评论(0) 推荐(0)
摘要:这题思路就普通的BFS加上一个维度朝向,主要是要注意输入,输出,以及细节的处理#include#include#include#includeusing namespace std;const int MAX = 9+1;const int DIR = 4;const int TURN = 3;bo... 阅读全文
posted @ 2015-06-24 09:40 瑞宇 阅读(564) 评论(0) 推荐(0)