首页 > 其他分享 >【持续更新】做题回顾和总结

【持续更新】做题回顾和总结

时间:2023-08-14 22:56:09浏览次数:37  
标签:总结 回顾 队列 更新 BFS vis 数组 全局

【持续更新】做题回顾和总结

  • 2023/8/14

  最近在做树和图相关的题目。中间碰到过很多关于 vis 数组的运用。这里总结一下。

  vis 数组分成两种,一种是函数调用前 vis,return 的时候再取消。这样是枚举不同的 dfs 路径,在一个节点下面的所有孩子跑递归。

  另外一种是全局 vis, vis 过一遍就不用再vis了。这里注意vis的位置,下面会提到。

  对于树上问题,无论是 BFS 还是 DFS,怎么vis都行,无论是全局还是路径搜索。甚至不需要 vis,直接判断是否是父节点,然后 continue 掉就行(注意所有的 continue 之前要重复一边一般的结束条件)。

  对于图上问题,要分情况,看是哪一种。注意,DFS 不介意在 kids 那里变 true 还是在递归的开始处。但是 BFS 是有问题的,一般来讲要在 kids 那里就把 vis 变 true,因为放入队列会有延迟处理,本来要被 vis 的没有被判掉。

  对于二分图,是多次全局 vis,然后每次清零。不要写成随问随清,因为这样会变成搜索,就挂了。vis 必要的记录是记录右侧(当以左侧为开始)。都记录是可以的。可以不去重边。

  无论什么样的 vis,都要结合实际情况和效果,在脑海里面过一遍,或者拿笔画一画,看看是不是自己想要的效果。无论什么问题,都要注意 vis 和其他配套数组的初始化。

  优先队列优化的目的是只有一遍。不然复杂度和普通队列无异,毕竟有 vis 配合。

标签:总结,回顾,队列,更新,BFS,vis,数组,全局
From: https://www.cnblogs.com/l-cacherr/p/17629998.html

相关文章

  • 关于Vue的就地更新策略的解析
    在Vue中使用v-for渲染列表时,默认使用就地更新策略。该策略默认是基于索引的,规定在列表绑定的数据元素顺序变化时,不会重新创建整个列表,而只是更新对应DOM元素上的数据。以下代码实现了一个TODO列表的勾选、添加和删除功能:<!DOCTYPEhtml><html><head><title>In-PlaceUpd......
  • 博弈论总结
    博弈论题目解题的关键在于找到一个状态a,设它的否定为状态b,状态a满足:不论怎么操作对手的状态a一定会转化为状态b和一定存在一种从状态b转化到状态a的操作。满足这样两条性质的状态a为必败态,b为必胜态。想求SG,需要对后续节点实行mex函数,想求是否为必胜必败态,需要求异或和如果使用SG......
  • NFLS 训练总结 2(updating)
    前言接上周。Day6总体情况1000+1200+1400+1700+1800+1408+0+300=8808,rk83大寄,为什么他们分都那么高啊!T1从T1就开始卡。简单的贪心,买票最少就是每个大人都尽量带孩子,而最多就是所有孩子都由一个大人带。如果没有大人只有孩子,就是“Impossible”。然后有人Impossibl......
  • 20230814巴蜀暑期集训测试总结
    T2考场一直卡在二进制思路里面,最后打了一个\(O(n\max\{a_i\})\)的方法,居然忘了继续向后跑\(\log\)位,挂掉\(20pts\)(像这种情况全挂也是有可能的)。我认为其实有的时候不要随便简化问题,或者说想多了也要及时回来(虽然这可能很不容易)。自己认为的简化不一定就把题目变简单了。像......
  • 2-04-Nacos配置管理-配置热更新-not practice
    所谓的热更新共有两种实现方式1.@Value+@Refresh针对单一类的配置热更新2.@ConfigurationProperties+@Autowired,针对所有类的配置热更新......
  • 8.14总结
    真的让人去世,我对于熬通宵本来不太适合,还得爬山这种体力活,到了中天门已经困到不行了,当时都打算放弃了,然后我就眯了一会,大约调整了半个小时,之后体力恢复多了,就想着来都来了,然后默默开始一点一点往上爬,最后爬上去了,感觉跟梦一样,然后腿脚就废了,真的不想来第二次了,不过真的很惊叹这次......
  • 8.13总结
    今天早早收拾好行李,去爬泰山了,听说泰山会制服每一个嘴硬的人,跟着其他三个朋友前去。到了地方,找好民宿后我i们坐在一起聊聊天没很享受这种氛围,晚上一起去外面吃了个饭,吃饱后我们步行回民宿去,准备去泰山了,大约十点半多年开始爬,希望能成功登顶......
  • webkit webApp 开发技术要点总结
    如果你是一名前端er,又想在移动设备上开发出自己的应用,那怎么实现呢?幸好,webkit内核的浏览器能帮助我们完成这一切。接触webkitwebApp的开发已经有一段时间了,现把一些技巧分享给大家:1.viewport:也就是可视区域。对于桌面浏览器,我们都很清楚viewport是什么,就是出去了所有工具栏、......
  • Hibernate 实体关联关系映射----总结
    http://lavasoft.blog.51cto.com/62575/39398Hibernate实体关联关系映射----总结 花了三天的业余时间,终于写完了Hibernate关联关系映射的所有实例,感觉还应该总结一下。 Hibernate映射关系错综复杂,在实际中真的都能用到吗?不用行吗? 在我......
  • 【产品人卫朋】专栏及配套资料更新:华为流程体系、产品经理、IPD与BLM模型
    目录前言01华为流程体系专栏02产品经理进阶专栏03华为战略方法论专栏04IPD进阶100例专栏作者介绍前言截止目前,本号已上线四大干货专栏,内容涉及:01华为流程体系(图文+视频);02硬件产品经理(图文+视频);03BLM战略方法论(图文+视频);04集成产品开发IPD体系(图文)。四大专栏具体内容......