摘要: 快速计算一个无向图中的环的个数 用BFT的方法来计算环的个数: 每个节点有三个状态:未访问,处在队列里,访问过并已经出队。 用BFT的方法遍历图,每次将新的节点入队前,都要检查该节点是否在队列里,或者是否已经从队列中弹出。 如果该节点在队列里,那么环的个数加一。其他情况,环的个数不变。 最后,遍历结 阅读全文
posted @ 2019-01-25 21:56 liuyongliu 阅读(290) 评论(0) 推荐(0)
摘要: I - Ant Trip 参考博客:Ant Trip(欧拉回路+并查集) 参考:欧拉路径问题与欧拉回路问题 题意:给你无向图的 N 个点和 M 条边,保证这 M 条边都不同且不会存在同一点的自环边,现在问你至少要几笔才能所有边都画一遍。(一笔画的时候笔不离开纸) 思路:先并查集将无向图的每个连通图分 阅读全文
posted @ 2019-01-25 21:44 liuyongliu 阅读(495) 评论(0) 推荐(0)
摘要: 参考: 1,Watchcow(poj 2230) 2,POJ2230 Watchcow【欧拉回路】 例题: H - Watchcow 题意:给个无向图,求一条回路,经过每条边两次,每次不同向,求无向图每条边恰好经过两次,在回到原点,输出经过的顶点。 容易转化为有向图欧拉回路每条边经过一次 递归写法( 阅读全文
posted @ 2019-01-25 19:52 liuyongliu 阅读(280) 评论(0) 推荐(1)
摘要: 题:欧拉回路 参考:浙大复试 HDU 1878 欧拉回路 本题是给图判断图中是否存在欧拉回路,欧拉回路的含义题目中也说明了,本题的思路就是并查集判断图是否连通,如果不连通不可能存在欧拉回路,如果连通了判断欧拉回路存在的条件是图中各点的度全部为偶数(所以这里需要注意将存放顶点度的数组初始化)。 1 / 阅读全文
posted @ 2019-01-25 18:21 liuyongliu 阅读(1317) 评论(0) 推荐(0)
摘要: 「笔记」读入优化 终极模板: 1 #include<cstdio> 2 class Read 3 { 4 private: 5 inline char getc() 6 { 7 static char buf[1<<18], *fs, *fe; 8 return (fs == fe && (fe = 阅读全文
posted @ 2019-01-25 17:06 liuyongliu 阅读(230) 评论(0) 推荐(0)
摘要: c++优先队列(priority_queue)用法详解 //升序队列 priority_queue <int,vector<int>,greater<int> > q; //降序队列 priority_queue <int,vector<int>,less<int> >q; //greater和le 阅读全文
posted @ 2019-01-25 16:42 liuyongliu 阅读(181) 评论(0) 推荐(0)
摘要: D - Ordering Tasks 题意:给个有向图,进行拓扑排序,也可使用BFS进行拓扑排序 1 /***********************************************/ 2 struct node{ 3 int v; 4 node(){} 5 node(int _v) 阅读全文
posted @ 2019-01-25 15:18 liuyongliu 阅读(298) 评论(0) 推荐(0)
摘要: B - Bicoloring 参考2:Bicoloring (并查集/二分图) 题意:判断此图是否为二分图(染色法,相邻两点不同色) AC代码: 1 /***********************************************/ 2 3 int co[250]; 4 5 stru 阅读全文
posted @ 2019-01-25 14:17 liuyongliu 阅读(340) 评论(0) 推荐(0)
摘要: A - How Many Tables 实现1代码: 1 /***********************************************/ 2 #define set st 3 int set[1006]; 4 int n,m; 5 void join(int a,int b) 6 阅读全文
posted @ 2019-01-25 10:52 liuyongliu 阅读(296) 评论(0) 推荐(0)