随笔分类 -  图论-欧拉回路

摘要:题面:https://www.luogu.org/problem/P1341 cpp 本题是一个欧拉回路模板题,直接建图跑欧拉回路即可,注意:有环时需回溯后再记录. Code: include include include include include using namespace std; 阅读全文
posted @ 2019-09-11 00:22 prestige 阅读(171) 评论(0) 推荐(0)
摘要:```cpp 混合图(既有有向边又有无向边的图)中欧拉环、欧拉路径的判定需要借助网络流! (1)欧拉环的判定: 一开始当然是判断原图的基图是否连通,若不连通则一定不存在欧拉环或欧拉路径(不考虑度数为0的点)。 其实,难点在于图中的无向边,需要对所有的无向边定向(指定一个方向,使之变为有向边),使整个图变成一个有向欧拉图(或有向半欧拉图)。若存在一个定向满足此条件,则原图是欧拉图(或半欧拉图)否... 阅读全文
posted @ 2019-08-03 16:26 prestige 阅读(777) 评论(0) 推荐(0)
摘要:```cpp 无向图:因为欧拉路径中,除了起点与终点以外,任意点的“进”“出”次数相等,所以除了两个点为奇点(度数为奇数的点)(终点和起点)以外,其它点的度数均为偶数。 如果是欧拉回路,奇点的个数应该为0。 有向图:欧拉路径中,最多只有两个点的入度不等于出度。起点出度比入度大1,终点入度比出度大1。 如果是欧拉回路,所有点的 入度=出度 。 ``` 阅读全文
posted @ 2019-07-22 00:51 prestige 阅读(832) 评论(0) 推荐(0)
摘要:```cpp 【题目描述】: 给你无向图的N个点和M条边,保证这M条边都不同且不会存在同一点的自环边,现在问你至少要几笔才能所有边都画一遍。(一笔画的时候笔不离开纸) 【输入描述】: 多组数据,每组数据用空行隔开。 对于每组数据,第一行两个整数N,M表示点数和边数。接下去M行每行两个整数a,b ,表 阅读全文
posted @ 2019-07-15 14:12 prestige 阅读(167) 评论(0) 推荐(0)
摘要:题面:https://www.luogu.org/problemnew/show/P3520 cpp 本题直接用跑欧拉回路找环即可。 Code: include using namespace std; int t,ansn,n,m,dis[2200000],f[2200000],vis[12000 阅读全文
posted @ 2019-07-15 14:03 prestige 阅读(124) 评论(0) 推荐(0)
摘要:```cpp include include int cnt[1001]; int pre[1001]; int find(int x) { int r=x; while(r!=pre[r]) { r=pre[r]; } return r; } int main() { int n,m; while 阅读全文
posted @ 2019-07-15 13:54 prestige 阅读(205) 评论(0) 推荐(0)
摘要:```cpp 【题目描述】: 有 N 个盘子,每个盘子上写着一个仅由小写字母组成的英文单词。你需要给这些盘子安排一个合适的顺序,使得相邻两个盘子中,前一个盘子上单词的末字母等于后一个盘子上单词的首字母。请你编写一个程序,判断是否能达到这一要求。如果能,请给出一个合适的顺序。 【输入描述】: 多组数据。第一行给出数据组数T,每组数据第一行给出盘子数量N,接下去N行给出小写字母字符串,一种字符串... 阅读全文
posted @ 2019-07-15 13:51 prestige 阅读(281) 评论(0) 推荐(0)
摘要:```cpp 题目背景 Farmer John每年有很多栅栏要修理。他总是骑着马穿过每一个栅栏并修复它破损的地方。 题目描述 John是一个与其他农民一样懒的人。他讨厌骑马,因此从来不两次经过一个栅栏。你必须编一个程序,读入栅栏网络的描述,并计算出一条修栅栏的路径,使每个栅栏都恰好被经过一次。Joh 阅读全文
posted @ 2019-07-15 12:55 prestige 阅读(127) 评论(0) 推荐(0)
摘要:```cpp include include include include include include include include using namespace std; const int N=2005; int n,a,b,G[N][N],d[N],ans[N],Cnt; void 阅读全文
posted @ 2019-07-15 12:53 prestige 阅读(913) 评论(0) 推荐(0)
摘要:```cpp include include include include include include include include using namespace std; const int MAXN=111; stackS; int edge[MAXN][MAXN]; int n,m; 阅读全文
posted @ 2019-07-15 12:11 prestige 阅读(649) 评论(0) 推荐(0)
摘要:```cpp #include #include #include using namespace std; int n; int a[101][101]; int indegree[101]; int outdegree[101]; int bfs(); int ans[101][101]; int compare(); void print(int i); int ma... 阅读全文
posted @ 2019-07-15 12:02 prestige 阅读(825) 评论(0) 推荐(0)
摘要:```cpp include include include using namespace std; const int maxn=1002; vector graph[maxn]; int n,m,cnt,in; bool visited[maxn]; void dfs(int v) { for 阅读全文
posted @ 2019-07-15 12:01 prestige 阅读(531) 评论(0) 推荐(0)