随笔分类 - 图论(杂)
摘要:https://acm.ecnu.edu.cn/contest/173/problem/C/ 联通块染色,若i,j满足题目中的条件,那么他们在每幅图中的染色情况相同,即hash值相同 使用unsigned long long hash 自动对2^64取模;
阅读全文
摘要:二维坐标离散化 离散化的思想就是将分布大却数量少(即稀疏)的数据进行集中化的处理,这样可以有利于程序的空间与时间,能减少遍历次数与空间储存。 思想理解起来其实道理很简单,如坐标(3,2000),(10005,31),(10006,5)离散至新图,先看x坐标,3个点有3,10005,10006,离散后
阅读全文
摘要:1 #include<bits/stdc++.h> 2 using namespace std; 3 inline int read(){ 4 int sum=0,x=1; 5 char ch=getchar(); 6 while(ch<'0'||ch>'9'){ 7 if(ch=='-') 8 x
阅读全文
摘要:树的直径: 利用了树的直径的一个性质:距某个点最远的叶子节点一定是树的某一条直径的端点。 先从任意一顶点a出发,bfs找到离它最远的一个叶子顶点b,然后再从b出发bfs找到离b最远的顶点c,那么b和c之间的距离就是树的直径。 用dfs也可以。 http://poj.org/problem?id=19
阅读全文
摘要:图不一定联通,所以用并查集找各个联通块的祖先分别建图,之后就和LCA的步骤差不多了
阅读全文
摘要:在dfs的过程中维护三个数组: deep[i],表示i点在树中的深度; grand[x][i],表示x的第2^i个祖先的节点编号; dis[x][i],表示x到它2^i祖 先的距离。
阅读全文
摘要:http://poj.org/problem?id=1986 离线找u,v之间的最小距离(理解推荐) #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> using namespace std; char
阅读全文
摘要:欧拉通路 欧拉回路的区别 及其判定 在做一些图类时经常要用到欧拉路,比如近期的单词连接和涂彩棒等,下面整理了一点: 欧拉通路: 通过图中每条边且只通过一次,并且经过每一顶点的通路。 欧拉回路: 通过图中每条边且只通过一次,并且经过每一顶点的回路。 无向图是否具有欧拉通路或回路的判定: 欧拉通路:图连
阅读全文

浙公网安备 33010602011771号