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

台州市建设局网站vps搭建wordpress博客

台州市建设局网站,vps搭建wordpress博客,房地产企业网站模板免费下载,美的企业微信网站题目链接:Luogu P6066 [USACO05JAN] Watchcow S 欧拉回路 题目描述: 给定一张无向图,输出任意一条从一号结点出发的欧拉回路(欧拉回路指每条无向边来回经过且只经过一次),给定的图保证这样的欧拉回路存在。…

题目链接:Luogu P6066 [USACO05JAN] Watchcow S 欧拉回路
题目描述:

给定一张无向图,输出任意一条从一号结点出发的欧拉回路(欧拉回路指每条无向边来回经过且只经过一次),给定的图保证这样的欧拉回路存在。

题解:

只需要从一号结点开始使用Hierholzer算法进行遍历即可。对于一个存在欧拉回路或者欧拉通路的图Hierholzer算法的思想是一直在图中找环,每找到一个环就将这个环从图中删除。具体地:

  1. 遍历到某个结点时,找到一个以当前结点为起点的环,如果不存在这样的环,则退出;
  2. 从图中删除当前找到的环经过的边,然后依次从当前的环上的每个点遍历,即回到1。
  3. 将遍历的当前结点加入到栈中。

上述的过程保存的结点依次从栈中弹出,则是一条以传入结点开始的欧拉回路或者欧拉通路。
在实际实现中我们知道DFS算法可以找环,所谓的删除边的操作,我们则可以每遍历一条边即将边给删除,这样只需要一次遍历即可找到欧拉回路或者欧拉通路(因此时间复杂度为O(n+m)),对于边的删除操作,如果使用邻接矩阵存边,我们没访问一次便执行connect[u][v]--操作,对于邻接表我们可以通过给每一条边增加一个deleted的标志,遍历之后将deleted置为true或者使用一个cnt数组,cnt[u]表示u结点应该从第几条边开始遍历,每遍历一条边便使cnt[u]++即可达到删除边的操作,使用链式前向星也可以通过增加deleted标志来实现删除边的效果。具体可以参见代码实现。
特别地,对于需要按照字典序进行遍历的情况而言,我们需要使用邻接表存边,这样才能够进行排序。除此之外,对于有些题目会要求无向边只经过一次,我们在删除边的时候需要将其反向边也给删除掉,而如果使用邻接表进行存边的话,我们需要保存反向边的编号,同时对于自环需要额外注意反向边的编号差异,而如果使用链式前向星则可以通过i^1的方式很容易的获取到反向边,因此对于这种题目推荐使用邻接表保存排序后(如果需要的话),对邻接表进行遍历再通过链式前向星保存图(由于链式前向星后加入的边会先遍历,因此排序时往往需要逆序)。

代码:LuoguP6066

http://www.yayakq.cn/news/369342/

相关文章:

  • 做网站包括什么软件网上卖货哪个平台比较好
  • 网站规划流程网站建设如何制作教程
  • 新开传奇网站迷失版高端企业网站信息
  • 网站开发价目表网站建设合同续签申请书
  • 网站建设功能seo美工背景图素材
  • 成品1688网站seo网络营销技巧
  • 网站开发标书上海建设工程咨询公司
  • 开源建站软件wordpress博客站点统计代码
  • 商丘三合一网站建设立网站系
  • 怎么做国内网站吗烟台网页制作
  • 渭南商铺网站建设企业所得税优惠政策
  • 做网站开发用什么APP好室内设计3d效果图用什么软件
  • centos 7.2 做网站怎么做网站源码
  • 音乐网站建设seo的中文含义是什么意思
  • 卧龙区网站建设价格app商店
  • 济南pc网站建设公司商旅100网页版
  • h5网站程序网页传奇霸主高手攻略
  • 做电影网站免责声明有用吗策划营销有限公司
  • 广州网站设计营销公司如果网站没有icp备案号
  • 做物流网站有哪些功能打开网站代码怎么写
  • 广元网站建设工作室网页制作和设计实验报告
  • 做网站看什么书北京工厂网站建设
  • 备案ip 查询网站查询系统南京企业网
  • 青岛模板做网站wordpress自动适应手机
  • 安庆有做网站的吗网站建设管理总结
  • 阿里云做网站买什么wordpress拖拽
  • 厦门 网站制作长沙3合1网站建设
  • 几个好用的在线网站应届生求职网站官网
  • 网站开发html5二元期权网站建设
  • 北京微网站建设设计服务廊坊seo关键字排名