![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
欧拉回路
~无相~
这个作者很懒,什么都没留下…
展开
-
AcWing 1185. 单词游戏(欧拉回路+边点互换)
题目有 N 个盘子,每个盘子上写着一个仅由小写字母组成的英文单词。你需要给这些盘子安排一个合适的顺序,使得相邻两个盘子中,前一个盘子上单词的末字母等于后一个盘子上单词的首字母。请你编写一个程序,判断是否能达到这一要求。输入格式第一行包含整数 T,表示共有 T 组测试数据。每组数据第一行包含整数 N,表示盘子数量。接下来 N 行,每行包含一个小写字母字符串,表示一个盘子上的单词。一个单词可能出现多次。输出格式如果存在合法解,则输出”Ordering is possible.”,否则输出”T原创 2020-09-27 10:22:28 · 367 阅读 · 0 评论 -
欧拉回路求字典序最小路径模板
#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int N = 510;int n = 500, m;int g[N][N];int ans[1100], cnt;int d[N];void dfs(int u){ for (int i = 1; i <= n; i ++ ) if (g[u][i]原创 2020-09-27 10:01:28 · 278 阅读 · 0 评论 -
AcWing 1124. 骑马修栅栏(欧拉回路字典序最小路径)
题目农民John每年有很多栅栏要修理。他总是骑着马穿过每一个栅栏并修复它破损的地方。John是一个与其他农民一样懒的人。他讨厌骑马,因此从来不两次经过一个栅栏。你必须编一个程序,读入栅栏网络的描述,并计算出一条修栅栏的路径,使每个栅栏都恰好被经过一次。John能从任何一个顶点(即两个栅栏的交点)开始骑马,在任意一个顶点结束。每一个栅栏连接两个顶点,顶点用 1 到 500 标号(虽然有的农场并没有 500 个顶点)。一个顶点上可连接任意多( ≥1 )个栅栏。所有栅栏都是连通的(也就是你可以从原创 2020-09-27 10:00:56 · 266 阅读 · 0 评论 -
AcWing 1184. 欧拉回路
题目给定一张图,请你找出欧拉回路,即在图中找一个环使得每条边都在环上出现恰好一次。输入格式第一行包含一个整数 t,t∈{1,2},如果 t=1,表示所给图为无向图,如果 t=2,表示所给图为有向图。第二行包含两个整数 n,m,表示图的结点数和边数。接下来 m 行中,第 i 行两个整数 vi,ui,表示第 i 条边(从 1 开始编号)。如果 t=1 则表示 vi 到 ui 有一条无向边。如果 t=2 则表示 vi 到 ui 有一条有向边。图中可能有重边也可能有自环。点的编号从 1 到 n。原创 2020-09-27 09:31:42 · 219 阅读 · 0 评论 -
Acwing1123. 铲雪车(欧拉回路)
题目随着白天越来越短夜晚越来越长,我们不得不考虑铲雪问题了。整个城市所有的道路都是双向车道,道路的两个方向均需要铲雪。因为城市预算的削减,整个城市只有 1 辆铲雪车。铲雪车只能把它开过的地方(车道)的雪铲干净,无论哪儿有雪,铲雪车都得从停放的地方出发,游历整个城市的街道。现在的问题是:最少要花多少时间去铲掉所有道路上的雪呢?输入格式输入数据的第 1 行表示铲雪车的停放坐标 (x,y),x,y 为整数,单位为米。下面最多有4000行,每行给出了一条街道的起点坐标和终点坐标,坐标均为整数,所有街道原创 2020-09-27 08:56:54 · 413 阅读 · 0 评论