随笔分类 -  搜索

摘要:如果可以确定先入队的距离一定更小的话,则可以(先判断是否为初始值,如果是初始值,可以入队,则)在入队的时候记录距离,例如边权为1的BFS。 如果不能确定, 例如01BFS,可能先对1入队,再对0入队, 由于可以确保出队时是有序的,可以在出队时记录(类似dijkstra), 也可以在入队时记录距离(当 阅读全文
posted @ 2022-08-13 11:32 80k 阅读(40) 评论(0) 推荐(0) 编辑
摘要:AcWing 1073. 树的中心 #include<bits/stdc++.h> using namespace std; typedef long long LL; vector<int> adj[10010]; vector<int> w[10010]; int p[10010]; int w 阅读全文
posted @ 2022-06-16 13:02 80k 阅读(28) 评论(0) 推荐(0) 编辑
摘要:有根树从根、无根树从任意一个节点开始处理即可 1、不考虑边权,考虑路径中点的个数,可以从任意一个节点开始进行DFS,DFS返回以当前节点为根的子树中,以当前节点为端点的最长路径。 经过当前节点的最长路径,即为以当前节点的子节点为端点的前2长的路径长度的和+1,并以此更新全局最长路径(直径)。 2、边 阅读全文
posted @ 2022-06-16 11:52 80k 阅读(28) 评论(0) 推荐(0) 编辑
摘要:在进行普通的BFS时,会将新的节点加入队尾。 但是由于01BFS的路径长度可能为0,故使用双端队列记录节点。如果路径为0,则加入队头,否则加入队尾。 例题:LCP 56. 信物传送 leetcode 2290. 到达角落需要移除障碍物的最小数目 class Solution { public: in 阅读全文
posted @ 2022-04-25 08:31 80k 阅读(37) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示