dfs
  • 2025-01-21C语言/C++——递归、递推、动态规划
    什么是动态规划:给定一个问题,我们把他拆成一个个子问题,直到子问题可以直接解决。然后把子问题的答案保存起来,以减少重复计算。再根据子问题的答案反推,得出原问题解的一种方法递归的过程:"递"的过程是分解子问题的过程;(dfs是第归的一种)            “归
  • 2025-01-21dfs专题一:递归
    dfs简介:1.汉诺塔问题link:面试题08.06.汉诺塔问题-力扣(LeetCode)codeclassSolution{public:voidhanota(vector<int>&A,vector<int>&B,vector<int>&C){dfs(A,B,C,A.size());}voiddfs(vector<int>&
  • 2025-01-20P10483 小猫爬山
    P10483小猫爬山背景这是一道\(DFS\)是个人就能看出来而我第一种方法没有过(哭死)结果把\(DFS\)的对象改一下就过了本题与U208362分为互质组方法相同分析题目题目要求就是最少需要多少缆车才能装完所有小猫,因此小猫的重量可以少于缆车的载重,但不能大于(意思就是不能把小
  • 2025-01-19Lake Counting(c++)
     AC代码:#include<iostream>usingnamespacestd;chara[105][105];intn,m,cnt;intdx[]={-1,-1,-1,0,1,1,1,0},dy[]={-1,0,1,1,1,0,-1,-1};voiddfs(intx,inty){ a[x][y]='.'; for(inti=0;i<8;i++){ inttx=x+dx[i],ty=y+dy[i]; if(
  • 2025-01-191.19
    FBI树[P1087NOIP2004普及组]FBI树-洛谷|计算机科学教育新生态(luogu.com.cn)不用去建树,直接不断拆分递归,然后每次判断一下这个区间内有多少个1,0.感觉类似二分importjava.util.Scanner;publicclassMain{staticintn;staticStrings;publics
  • 2025-01-192025dsfz集训Day3:DFS搜索与剪枝
    DAY3:DFS搜索与剪枝深搜深度优先搜索(DFS)是一种遍历或搜索树或图的算法,它从一个根节点开始,尽可能深地搜索每个分支,直到找到解为止。在搜索讨程中,为了提高效率,减少不必要的搜索,通常会采用各种剪枝优化策略。剪枝基本思想在深度优先搜索中,我们通常会遍历图或树的所有节点和边
  • 2025-01-18例题_树基础 P5318
    洛谷P5318分析关键词n篇文章m条参考文献引用关系x文章有y参考文献BFS&&DFS结果步骤定义不仅要定义关键词,还要再定义一个容器这里用\(set\)set<int>e[100009];注意要初始化输入输入nmxy这几个关键字计算过程分两步深搜广搜输出先调用函数,在
  • 2025-01-18dpppppppppppppppp
    啊啊啊啊啊.其实和普通的dp差别不大,推了dp方程就是套模版CF219Dlink#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;constintM=4e5+110;intread(){ intsum=0,k=1;charc=getchar(); while(c>'9'||c<'0'){if(c=='-')k=-1;c
  • 2025-01-17【搜索】洛谷P1123 取数游戏
    P1123取数游戏搜索顺序:按格子枚举。思想类比AcWing843.n-皇后问题按格子枚举方法,以及AcWing1116.马走日AcWing1117.单词接龙AcWing1118.分成互质组,体会恢复现场写在for循环内部与写在for循环外部的区别。最大的区别:恢复现场写在for循环外可以不用清空标记数组。
  • 2025-01-17树链剖分
    原理:将树以一种划分方式分成若干条链,转换为区间,再用数据结构维护一般形式:两遍dfs初始化+数据结构(线段树/树状数组)解决的问题:各种树上区间操作(维护的东西越多,解决问题的范围就越大)两遍dfs维护的:$fa$[](父节点)$son$[](重儿子)$dep$[](深度)$siz$[](子树大小)$seg$[](树中点在数
  • 2025-01-16日常训练2025-1-16
    日常训练2025-1-16C.AddZerosrating:1500https://codeforces.com/problemset/problem/2027/C思路(转化为图)我们把公式化成|a|=a_i+i-1,即满足这个公式的位置会给长度加i-1所以相当于从a_i+i-1---->a_i+i-1+i-1建一条有向边,跑一个dfs即可。
  • 2025-01-16树+dfs
    原题链接:https://codeforces.com/problemset/problem/2050/G题解链接:https://blog.csdn.net/Lazy_ChessPlayer/article/details/144279298#include<bits/stdc++.h>#definelcp<<1#definercp<<1|1#defineINF2e9usingnamespacestd;#definelowbit(x)
  • 2025-01-15DFS 2025/1/15
    DFS&DFS剪枝优化Basic01 先搜节点少的分支如果搜进来一个大分支而答案不在此分支就会浪费大量时间02可行性剪枝已经白扯了就return03最优性剪枝如果此分支确定不是最优解(差于已有解)就return04记忆化搜索记录之前搜过Data,避免重复搜Question01[
  • 2025-01-15迷宫问题详解(DFS)(谁都能学会版)
    迷宫问题迷宫问题详解(DFS)前言:具体过程1.定义方向数组并使用嵌套结构体定义栈中元素2.实现栈的基本功能(基本功)3.逆序输出栈中元素(难点之一)4.拼凑函数与具体实现5.笔记6.main函数结语迷宫问题详解(DFS)前言:希望在观看此片之前先去观看懒猫老师的视频,此篇是完全基于
  • 2025-01-14leetcode 刷题
    现有一个记作二维矩阵 frame 的珠宝架,其中 frame[i][j] 为该位置珠宝的价值。拿取珠宝的规则为:只能从架子的左上角开始拿珠宝每次可以移动到右侧或下侧的相邻位置到达珠宝架子的右下角时,停止拿取注意:珠宝的价值都是大于0的。除非这个架子上没有任何珠宝,比如 frame=[
  • 2025-01-14AcWing算法周赛第6场 | 3734 求和
    学习C++从娃娃抓起!记录下AcWing备赛学习过程中的题目,记录每一个瞬间。附上汇总贴:AcWing算法周赛|汇总【题目描述】用f(x)
  • 2025-01-12LeetCode:112.路径总和
    LeetCode:112.路径总和解题思路在深度优先遍历的过程中,记录当前路径的节点值的和。在叶子节点处,判断当前路径的节点值的和是否等于目标值。解题步骤深度优先遍历二叉树,在叶子节点处,判断当前路径的节点值的和是否等于目标值,是就返回true。遍历结束,如果没有匹配,就返回false。varh
  • 2025-01-12树的直径
    更新日志2025/01/12:开工。前言你知道吗?树的直径有三种求法。两遍DFS先任意点DFS,在最远点再DFS,两次最远点就是直径两端。证明树型DP-A考虑对于每个点求出其向下的最长路径与次长路径(不同子树),其和就是经过该点且在其子树内的最长路径长度了。所有节点取\(\max\)即
  • 2025-01-12dp总结(未完)
    动态规划对于一个能用动态规划解决的问题,一般采用如下思路解决:1.将原问题划分为若干阶段,每个阶段对应若干个子问题,提取这些子问题的特征(称之为状态);2.寻找每一个状态的可能决策,或者说是各状态间的相互转移方式(用数学的语言描述就是状态转移方程)。3.按顺序求解每一个阶段的
  • 2025-01-11关于此题[ABC350E] Toward 0和[ABC188F] +1-1x2记忆化搜索的一些总结
    传送门1传送门2这两道题都有个特性,那就是数据范围到了\(10^{18}\),这会让我们想用记忆化搜索或者期望DP的想法望而却退但是实际上我们可以用map。有人会说,用map那时间上貌似也过不去啊!但是我们发现这两道题当中,我们可以进行的操作都有除法操作,这就有点像势能线段树,时间复杂度实
  • 2025-01-11题解:P2296 [NOIP2014 提高组] 寻找道路
    条件第一步,要能到达\(t\)点,建反图跑一遍。记录哪些点可行。第二步,扫描每个点,若其旁边均为标记过的,说明点的出边所指向的点都直接或间接与终点连通。记录这个点第二次第三步,在原边枚举每条边,若两个节点均被记录了第二次,加入一个新图,否则扔掉。对新图进行BFS即可。代码:#inc
  • 2025-01-09DFS与BFS专题
    99.岛屿数量讲解:https://programmercarl.com/kamacoder/0099.岛屿的数量广搜.html#思路DFS代码#include<iostream>#include<cstring>usingnamespacestd;constintN=55;intn,m;intg[N][N];boolst[N][N];intdx[4]={-1,0,1,0},dy[4]={0,1,0,-1
  • 2025-01-07子集(递归)
    题目链接:https://leetcode.cn/problems/subsets-ii/submissions/591733085/题意:给你一个数组,输出不同数字的组合(若两个组合都挑一个1,一个2,无论顺序如何,只输出一个)思路:先排序,将不同数字分组,再讨论每组选0,1,2,...n个的情况classSolution{public:vector<vector<int>>sub
  • 2025-01-07虚树 Virtual Tree
    更新日志2025/01/07:开工。概念在很多树上问题中,我们会发现,实际需要的,只有几个关键点。那么我们就可以针对这些关键点进行操作。更具体地,建一棵规模更小的,但是仍能完成要求的浓缩过的树,即为虚树。思路简介首先,常识可得:除了关键点,关键点两两的\(\text{LCA}\)也需要储
  • 2025-01-06欧拉回路算法
    网络上关于求欧拉回路的线性算法的资料普遍缺少证明。本文将通过分析欧拉回路的性质直接推导出这一算法。算法流程基本的定义可以参考Alex_Wei的博客,本文不再赘述。算法流程部分仅推导求无向图欧拉回路的算法,求有向图欧拉回路的算法的推导过程是类似的,更改一些对应术语即可。