首页 > 其他分享 >图论—欧拉回路/路径

图论—欧拉回路/路径

时间:2024-03-24 21:00:47浏览次数:31  
标签:图论 cn luogu 路径 回路 com 欧拉

前置知识:欧拉图 (两个要点:1.是连通图才有欧拉回路2.是否满足出度和入度的要求)

模板题 :P7771 【模板】欧拉路径 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

欧拉回路

1.• 对于无向图,欧拉回路就是在图的所有结点的度都是偶数,并且图是连通的情况下,从任意一个节点开始 dfs 都可以回到原点。
一道典题:P6066 [USACO05JAN] Watchcow S - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)从一点出发回到这一点的欧拉回路
2.P2731 [USACO3.3] 骑马修栅栏 Riding the Fences - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 欧拉回路需要考虑重边是否计算

欧拉路径

1.https://www.luogu.com.cn/problem/UVA10129 欧拉路径的应用题,对于每个单词都要出现一次相当于欧拉路径中每条边都有出现一次,要考虑如何保留边的信息
2.对于判连通图来说,dfs有可能会爆栈,那么可以改用并查集

寻找欧拉路径

//对于稠密图,删边操作还是很重要的,否则可能会T
void dfs(int u){
	for(int i = vis[u];i<G[u].size();i = vis[u]){
		vis[u] = i+1;//删边操作很重要,当边特别大时
		dfs(G[u][i]);
	}
	st.push(u);
}

判断是否能够形成欧拉回路/路径(省略判连通图)

fa(i,1,n){
		if(d[i][0] != d[i][1]){
			tag = 0;
			if(d[i][0]-d[i][1]==1) mp[0]++,start = i;
			else if(d[i][1]-d[i][0]==1) mp[1]++;
			else {
				cout<<"No"<<endl;
				return 0;
			}
		}
	}
	if((!tag)&&!(mp[0] == mp[1]&&mp[1] == 1)) {
		cout<<"No"<<endl;
		return 0;
	}

标签:图论,cn,luogu,路径,回路,com,欧拉
From: https://www.cnblogs.com/hatsunemiku39/p/18087149

相关文章

  • 图论必备:前置知识大盘点,助你轻松起航!
    ​                        ......
  • FFmpeg开发笔记(七)欧拉系统编译安装FFmpeg
    FFmpeg支持Linux、macOS、Windows、Android等操作系统,其中Linux系列包括Ubuntu、Debian、Mint、CentOS、RHEL、Fedora等分支。FFmpeg官网的编译入口地址为https://trac.ffmpeg.org/wiki/CompilationGuide,在这里可以找到FFmpeg对各系统的编译说明。更多详细的FFmpeg开发知识参见《F......
  • 图论基础|417. 太平洋大西洋水流问题、827.最大人工岛、127. 单词接龙
    目录417.太平洋大西洋水流问题827.最大人工岛127.单词接龙417.太平洋大西洋水流问题题目链接(opensnewwindow)有一个m×n的矩形岛屿,与太平洋和大西洋相邻。“太平洋”处于大陆的左边界和上边界,而“大西洋”处于大陆的右边界和下边界。这个岛被分割......
  • java:欧拉公式e^ix==cosx+i*sinx 用Math类中的方法输出90°以内的欧拉函数数值,保留四位
    publicclassMain{//本题的要求:e^ix==cosx+i*sinxdoubleb,c;chari;publicstaticvoidmain(String[]args){for(doublej=0;j<90;j++){//用循环依次整出0-90度doublesum=0;//temp是e^ix;doublea=j;a=Math.toRadi......
  • 图论06-飞地的数量(Java)
    6.飞地的数量题目描述给你一个大小为mxn的二进制矩阵grid,其中0表示一个海洋单元格、1表示一个陆地单元格。一次移动是指从一个陆地单元格走到另一个相邻(上、下、左、右)的陆地单元格或跨过grid的边界。返回网格中无法在任意次数的移动中离开网格边界的陆......
  • 2.图论专题
    图论专题\(A\)CF464ETheClassicProblem\(B\)CF103EBuyingSets\(C\)CF1163FIndecisiveTaxiFee\(D\)CF708DIncorrectFlow\(E\)CF871ERestoretheTree\(F\)CF1779EAnya'sSimultaneousExhibition\(G\)CF521ECyclingCity\(H\)CF......
  • C++实现欧拉筛法
    Euler筛法介绍以筛出100以内(含100)的所有素数为例来说明一下欧拉筛法的原理。和Eratosthenes筛法一样,Euler筛法也从2开始筛,但Eratosthenes筛法会把2的倍数一批全部筛掉,而Euler筛法用2筛时仅仅把2*2(即4)筛掉,而把其它偶数留到后面再筛掉,从而避免了一个偶数被多次筛除带来的性能开销,......
  • 搜索与图论
    DFSdfs,即深度优先搜索,主要运用递归的思想。会将一种可能性搜索完的情况下再开始搜索下一种可能性。acwing1355母亲的牛奶给你三个不同大小的桶,一开始只有c桶装满牛奶,三个桶来回倒,求问在a桶空着的情况下c桶可能有多少牛奶,答案升序输出数据很小,我们考虑每种情况而并非考虑每个......
  • 搜索与图论(一)树的遍历/深度/广度/拓扑排序
    文章目录搜索与图论树与图的深度优先遍历举个栗子树的重心思路结论代码如下树与图的广度优先遍历举个例子图中点的层次样例展示代码拓扑排序啥是拓扑排序?解题思路举个栗子题目代码如下搜索与图论树与图的深度优先遍历举个栗子树的重心思路邻接表存储......
  • 【洛谷 P8602】[蓝桥杯 2013 省 A] 大臣的旅费 题解(图论+深度优先搜索+树的直径+链式
    [蓝桥杯2013省A]大臣的旅费题目描述很久以前,T王国空前繁荣。为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首都直接或者通过其他大城市间接到达。同......