DFS
DFS
化身孤岛的鲸o
我祈祷拥有一颗透明的心灵
展开
-
LeetCode 103. 二叉树的锯齿形层序遍历 dfs
LeetCode 103. 二叉树的锯齿形层序遍历 dfs原创 2023-04-20 03:23:54 · 78 阅读 · 0 评论 -
赛码网 搭积木 连通分量、欧拉通路、欧拉回路
赛码网 搭积木 连通分量、欧拉通路、欧拉回路原创 2023-04-06 22:51:26 · 193 阅读 · 0 评论 -
LeetCode 257 二叉树的所有路径 dfs或bfs
LeetCode 257 二叉树的所有路径 dfs或bfs原创 2023-03-24 04:03:55 · 54 阅读 · 0 评论 -
天梯赛 L3-022 地铁一日游 (30分) Floyed+dfs
天梯赛 L3-022 地铁一日游 (30分) Floyed+dfs题解:这道题的结点数较少,所以我们可以用Floyed求出最短路径。然后我们对于每一个站点i,都求出在花费相同时可以到达的最远的站点,把这些站点都作为i的候选站点。接着对于每一次查询,我们用一次dfs把从开始结点出发可以到达的所有结点都打上标记,接着我们只要输出标记等于本次查询序号的结点即可。注意坐地铁是可以来回往返的,...原创 2020-02-22 23:18:41 · 1896 阅读 · 0 评论 -
生成全排列 逆字典序输出
题目链接:http://39.106.164.46/problem.php?id=1038思路:dfs,每当cnt==n时输出当前序列。代码如下:#include<iostream>#include<algorithm>#include<stdio.h>#include<cmath>#include<queue>#include<cstring>#include<vector>#include<原创 2020-08-19 18:30:29 · 267 阅读 · 0 评论 -
PIPIOJ 1133: 棋盘问题 dfs
题目:http://39.106.164.46/problem.php?id=1133代码如下:#include<iostream>#include<stdio.h>#include<cmath>#include<algorithm>#include<queue>#include<set>#include<vector>#define MAX #define INF 0x3f3f3f3ftypedef原创 2020-10-14 19:12:56 · 383 阅读 · 0 评论 -
洛谷 P1242 新汉诺塔 dfs递归
洛谷 P1242 新汉诺塔 dfs递归90分代码:优先保证编号较大的到达目标位置,把其他编号较小的盘子都先移到中间柱子上。#include<iostream>#include<algorithm>#include<stdio.h>#include<cmath>#include<queue>#include<cstri...原创 2020-02-01 17:33:37 · 229 阅读 · 0 评论 -
洛谷 P1441 砝码称重 dfs+动态规划
洛谷 P1441 砝码称重 dfs+动态规划题解:我们首先进行dfs,记录深度depth和当前已经舍弃的砝码数目num,当深度到达n时,说明已经全部搜索到了,若此时num==m,我们就进行一次dp,计算出这时最多可以称出的不同重量,最后取最大值即可。至于dp的过程,我们可以采用逆推的方式,dp[j]=1说明重量为j的物品可以被称出。代码如下:#include<iostream>...原创 2020-02-01 15:32:27 · 405 阅读 · 0 评论 -
洛谷 P1514 引水入城 记忆化搜索+线段覆盖
洛谷 P1514 引水入城 记忆化搜索+线段覆盖原创 2020-02-01 00:12:46 · 198 阅读 · 0 评论 -
洛谷 P1378 油滴扩展 dfs搜索
洛谷 P1378 油滴扩展 dfs搜索题解:dfs尝试所有的油滴放置顺序,找到总面积最大的一种。代码如下:#include<iostream>#include<algorithm>#include<stdio.h>#include<cmath>#include<queue>#include<cstring>...原创 2020-01-31 22:50:48 · 214 阅读 · 0 评论 -
洛谷 P1433 吃奶酪 dfs剪枝
洛谷 P1433 吃奶酪 dfs剪枝题解:dfs+剪枝,不过现在好像被卡时间了,第10个点过不了。。代码如下:#include<iostream>#include<algorithm>#include<stdio.h>#include<cmath>#include<queue>#include<cstring>...原创 2020-01-31 21:39:13 · 268 阅读 · 0 评论 -
洛谷 P1434 [SHOI2002]滑雪 dfs记忆化搜索
https://www.luogu.com.cn/problem/P1434原创 2020-01-31 20:51:27 · 247 阅读 · 0 评论 -
PAT顶级 1004 To Buy or Not to Buy - Hard Version (35分) dfs+剪枝
PAT顶级 1004 To Buy or Not to Buy - Hard Version (35分) dfs+剪枝题解:题意:题目要求是给出一个字符串s(一串珠子)(只包含数组和大小写字母),再给出n个字符串,我们要从这n个字符串中选取一些,这里我举个例子说明吧,就是假设s中有4个a,5个b,3个c,那么我们选取的字符串中a的总和要大于等于4,b的总和要大于等于5,c的总和要大于等于...原创 2020-02-13 20:25:14 · 371 阅读 · 0 评论 -
PAT甲级 1131 Subway Map 图的dfs
代码如下://图的dfs#include<iostream>#include<stdio.h>#include<vector>#include<cstring>#include<map>#define INF 0x3f3f3f3fusing namespace std;map<int,int> l...原创 2019-11-16 00:02:39 · 202 阅读 · 0 评论 -
PAT甲级1021 Deepest Root dfs求连通分量+找出树的最大高度结点
思路:这道题给出一个无向图,该图有n个结点和n-1条边,若图是连通图,则它一定是一棵树,那么我们就要求出树的每个结点的高度,找出高度最大的所有结点,把结点序号依次输出;若图不是连通图,我们就要求出其连通分量的个数cnt并输出。我们先用一次dfs找到从任意一个结点开始搜索到的最大高度的结点(可能不唯一,不过对结果没有影响),把这些结点放入集合set中,并从这个结点开始再进行一次dfs,再把高度...原创 2019-05-08 00:44:20 · 304 阅读 · 0 评论 -
PAT甲级 1034 Head of a Gang DFS找连通分量
Solution:题目要求:根据每个人之间的通话时长来确定一个帮派的头目和成员个数。输入:给出N个电话记录(N<=1000)以及最小帮派通话时长K(K<=1000),每个通话记录有打电话者姓名name1、接电话者姓名name2以及通话时长Time(分钟)。姓名用3个大写字母表示。两个人之间打电话就认为他们之间有关联。当关联人数超过2人以及通话时长超过给定的K,就认为这是一个...原创 2019-08-31 13:56:09 · 202 阅读 · 0 评论 -
PAT甲级 1079 Total Sales of Supply Chain 树+DFS
Solution:题目要求:给出一个供应链(其实就是一颗树),有供应商,经销商以及零售商共n个结点(0~n-1),根结点恒为0,零售商就是叶子结点。从供应商到零售商,每经过一个结点,商品单位价格p就会有一定的涨幅r,每个零售商有自己的销量。求所有零售商所获得的钱数之和。代码如下://树+dfs#include<iostream>#include<vector>...原创 2019-09-01 17:48:38 · 303 阅读 · 0 评论 -
PAT甲级 1090 Highest Price in Supply Chain DFS+树
代码如下://树+DFS#include<iostream>#include<vector>#include<algorithm>#include<math.h>#include<iomanip>using namespace std;struct tree{ vector<int> child;...原创 2019-09-07 23:47:47 · 151 阅读 · 0 评论 -
PAT甲级 1155 Heap Paths DFS+树的层次遍历
Solution://DFS+树的层次遍历#include<iostream>#include<algorithm>#include<vector>using namespace std;struct tree{ int key; int left; int right; tree(){ le...原创 2019-09-07 23:44:24 · 184 阅读 · 0 评论 -
PAT甲级 1106 Lowest Price in Supply Chain 树+DFS
Solution:题目大意:给出一棵树,序号为0~n-1,根结点恒为0。根结点的价格为p,每往下一个结点,价格都会以百分之r的利率提升,统计最小价格子结点的个数并输出这个最小价格,保留4位小数。代码如下://树+dfs#include<iostream>#include<vector>#include<math.h>#include<s...原创 2019-09-30 19:48:33 · 176 阅读 · 0 评论 -
PAT甲级 1103 Integer Factorization DFS+因数分解
Solution:题目大意:给出一个整数n,需要将n分解为p个数的k次方之和,且这p个数之和要求最大,如果有多个序列都可以满足和最大,将这些序列降序排列,输出序列相比最大的那个序列。还是DFS,但如果暴力DFS,肯定是会超时的。我们把可能的因子记录下来,每个因子都有选与不选两种选择,我们从大到小选择因子,并且每次先进行选择再进行不选,这个就可以保证题目要求的序列输出。代码如下:#inc...原创 2019-09-30 20:33:57 · 245 阅读 · 0 评论 -
PAT甲级 1013 Battle over cities DFS或者并查集找连通分量
Solution:这个题的大意是:在一个有n个结点(结点序号为1~n)的图中,有m条边。这时,我们去掉任意一个结点,我们要在剩下的图中形成一个连通图,最少需要多少条边。这道题可以转化为在去掉一个结点后,图的连通分量的个数,连通分量的个数cnt再减1就是最少需要增加的边的数量。先把要去掉的结点从图中移除,即visit[v]=1,再进行dfs,每次dfs后cnt+1。最后cnt-1就是结果。...原创 2019-04-20 11:55:36 · 278 阅读 · 0 评论