2012年5月29日
摘要: http://poj.org/problem?id=1330最近公共父结点离线算法 LCA用并查集 和 dfs每搜到一个点 先让其父结点等于自己继续往下搜 这时如果询问已搜过的点 则两点之间的最近公共父结点就是 已搜过的点的最上父结点若没搜过 就继续深搜所用相连的点都搜完后 让此点的父结点为上一层结点#include<iostream>#include<cstring>using namespace std;const int N=10005;struct node{ struct tt *next;}mem[N];struct tt{ struct tt *next; 阅读全文
posted @ 2012-05-29 21:25 夜-> 阅读(136) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1523居然1A and 0ms 太让我意外了题目大意:给你几个电脑的双相连通图 问你是否存在割点 如果存在输出割点并输出此割点见原图变成了几个块输入输出只要注意就是了 没别的办法Tarjan 算法 我就不多说了 我也说不好总之用Tarjan算法找割点 但是你搜索时的根结点要特判对不每个割点用dfs求其可把原图分成几个块从割点发出可能用k个分支 那么块数 <= k对其分支进行深搜并记录 有几个分支可以向下搜 就有几个块深搜记录 可以搞定几个分支相连的情况详情见代码注释:#include<iostream>#include&l 阅读全文
posted @ 2012-05-29 17:04 夜-> 阅读(195) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示