当前位置: 首页 > news >正文

华为官方商城网站建设方案广西seo快速排名

华为官方商城网站建设方案,广西seo快速排名,宜宾汽车网站建设,域名注册好了怎么做网页【题目链接】 ybt 1375:骑马修栅栏(fence) 洛谷 P2731 [USACO3.3]骑马修栅栏 Riding the Fences 【题目考点】 1. 图论:欧拉回路 欧拉回路存在的条件:图中所有顶点的度都是偶数欧拉路径存在的条件:图中只有两个度为奇数的顶点…

【题目链接】

ybt 1375:骑马修栅栏(fence)
洛谷 P2731 [USACO3.3]骑马修栅栏 Riding the Fences

【题目考点】

1. 图论:欧拉回路

  • 欧拉回路存在的条件:图中所有顶点的度都是偶数
  • 欧拉路径存在的条件:图中只有两个度为奇数的顶点。而且这两个顶点是欧拉路径的起点与终点。

求解欧拉回路使用Hierholzer算法
复杂度:O(V+E)O(V+E)O(V+E)

【解题思路】

该图是无向图,顶点就是图中的顶点,栅栏是边。
“栅栏都是连通的”,意味着这是一个无向连通图。
“使每个栅栏都恰好被经过一次”,就是每条边都经过一次。该问题为求欧拉路径。可以使用Hierholzer算法解决。
“两顶点间可能有多个栅栏”意味着可能有重边,但Hierholzer算法可以处理有重边或自环的图。
“输出500进制表示法中最小的一个”,即为输出字典序最小的欧拉路径顶点序列。
只需要在实现Hierholzer算法时,包括选择起始顶点或某顶点的邻接点时,尽量选择编号较小的顶点来访问即可。

在输入边时,统计顶点编号的最大值,作为总顶点数量。

首先从小到大遍历所有顶点

  • 如果存在奇数度的顶点,选择该顶点作为起始点。
  • 如果不存在奇数度的顶点,那么所有顶点的度都是偶数,任选顶点作为起始点。这里选择1号顶点为起始点。

从起始顶点出发,进行深搜,使用Hierholzer算法求欧拉路径。为了满足条件,必须按顶点编号从小到大访问一个顶点的所有邻接点。

可以使用邻接矩阵或邻接表完成该题。

【题解代码】

解法1:邻接矩阵

#include<bits/stdc++.h>
using namespace std;
#define N 505
int edge[N][N], n, m, deg[N];//n:顶点数 m:边数 deg[i]:顶点i的度
stack<int> stk;
void dfs(int u)//Hierholzer算法 
{for(int v = 1; v <= n; ++v){if(edge[u][v]){edge[u][v]--;edge[v][u]--;dfs(v);}}stk.push(u);
}
int main()
{int f, t, st = 1;//st:起点 cin >> m;for(int i = 1; i <= m; ++i){cin >> f >> t;n = max(n, max(f, t));edge[f][t]++;edge[t][f]++;deg[f]++;deg[t]++;}for(int v = 1; v <= n; ++v)//如果找到奇数度顶点,就从奇数度顶点出发,否则从1出发 {if(deg[v] % 2 == 1){st = v;break;}}dfs(st);while(stk.empty() == false){cout << stk.top() << endl;stk.pop();}return 0;
}

解法2:邻接表

#include<bits/stdc++.h>
using namespace std;
#define N 505
#define M 1050
struct Node
{int v, e;//v:顶点 e:边编号 Node(){}Node(int a, int b):v(a), e(b){}
};
int n, m, beg[N], deg[N];//n:顶点数 m:边数 deg[i]:顶点i的度 beg[i]:顶点i的邻接点从edge[i][beg[i]]开始 
bool vis[M];//vis[i]:边i是否已访问过 
vector<Node> g[N];
stack<int> stk;
bool cmp(Node a, Node b)
{return a.v < b.v;
}
void dfs(int u)//Hierholzer算法 
{for(int &i = beg[u]; i < g[u].size(); ++i){int v = g[u][i].v, e = g[u][i].e;if(vis[e] == false){vis[e] = true;dfs(v);}}stk.push(u);
}
int main()
{int f, t, st = 1;//st:起点 cin >> m;for(int i = 1; i <= m; ++i){cin >> f >> t;n = max(n, max(f, t));g[f].push_back(Node(t, i));g[t].push_back(Node(f, i));deg[f]++;deg[t]++;}for(int v = 1; v <= n; ++v)sort(g[v].begin(), g[v].end(), cmp);for(int v = 1; v <= n; ++v){//如果找到奇数度顶点,就从奇数度顶点出发,否则从1出发 if(deg[v] % 2 == 1){st = v;break;}}dfs(st);while(stk.empty() == false){cout << stk.top() << endl;stk.pop();}return 0;
}
http://www.mmbaike.com/news/54855.html

相关文章:

  • 企业网站开发知名品牌有哪些南京百度推广优化排名
  • 中国建设银行官网网站首页短视频seo推广
  • 杭州临平网站建设seo课程排行榜
  • 丹东市住房和城乡建设委员会网站百度贴吧官网首页
  • 黑河企业网站建设公司深圳全网信息流推广公司
  • 长沙专业网站建设运营佛山优化网站关键词
  • 留住用户网站短视频推广app
  • 海口个人建站模板北京网站建设公司哪家好
  • wordpress私有网盘站长工具seo综合查询源码
  • 关于网站建设维护的创业计划书要怎么网络做推广
  • 苏州专业高端网站建设天津百度
  • 个人网站备案建设方案书优化系统
  • 最好永久免费素材网廊坊网站排名优化公司哪家好
  • 南京自助网站建设口碑营销的形式
  • 山西大同专业网站建设制作价格南京seo外包
  • 企业营销网站建设公司哪家好什么是搜索引擎销售
  • 宝塔搭建完wordpressseo内链优化
  • php动态网站开发是干嘛的快速整站排名seo教程
  • 你有网站 我做房东 只收佣金的网上海百度搜索优化
  • 广元网站建设价格网红推广团队去哪里找
  • 长春网站建设有什么百度指数指的是什么
  • 信誉好的东莞网站建设数字营销包括哪六种方式
  • 开发一款游戏app需要多少钱宁波seo推荐优化
  • 网站了建设注册公司
  • 淘宝客网站建设软服业营收破334亿
  • 公司注册资金最低多少单页关键词优化费用
  • 湖南 网站建设太原高级seo主管
  • 怎么进入网站开发模式电子技术培训机构
  • Php做网站创业网络运营工作内容
  • magento网站维护市场调研报告模板