
dfs
dfs
JA_yichao
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
买汽水【折半搜索】
题目 思路 我们首先搜索一半的范围,然后另一半就用二分来判断是否可行。 这样时间复杂度是原创 2021-08-08 11:50:34 · 192 阅读 · 0 评论 -
YbtOJ 深度搜索课堂过关 例3 虫食算【深度优先搜索】【优化】
思路 这道题我们首先把输入的字母按出现顺序放到一个数组里。 这样如果直接暴力的话会超时,所以考虑要优化。 如果当前有值没有被枚举过,我们就可以设一个标记为 −1-1−1。 我们肯定从低位到高位算, 如果在设为 −1-1−1 之后又有一位上三个值都被枚举过了的话, 那么我们就分成是否被进位讨论, 没有进位,那么 a+ba+ba+b 的个位就要等于 ccc, 有进位,那么 a+b+1a+b+1a+b+1 的个位就要等于c, 如果前面所有位的值都被枚举过了, 那我们就可以直接进行加法进位, 如果两个条件都不满..原创 2021-01-08 21:03:35 · 175 阅读 · 0 评论 -
YbtOJ 深度搜索课堂过关 例2 数独游戏【深度优先搜索】
思路 这道题用搜索实现。 我们可以用三个数组 l,h,ggl,h,ggl,h,gg 来存放行,列和九宫格里数字的状态。 然后模拟数字填写过程,把一到九全部考虑一次。 CodeCodeCode #include<iostream> #include<cstring> #include<cstdio> #include<cmath> using namespace std; int h[10][10],l[10][10],gg[10][10][10],a[10..原创 2021-01-03 15:23:46 · 236 阅读 · 0 评论 -
YbtOJ 深度搜索课堂过关 例1 拔河比赛【深度优先搜索】
思路 这道题是一道比较基础的深搜题 对于每一个队员,只有选1队和选2队两种状态。 搜索每一种情况取最小即可。 CodeCodeCode #include<iostream> #include<cstdio> #include<cmath> using namespace std; int w[100010]; int T,n,ans=2147483647; void dfs(int x,int g1,int g2,int js1,int js2) { if(x>..原创 2021-01-02 20:44:48 · 231 阅读 · 0 评论 -
2020年9月12日普及组 T4 树【树状数组】【dfs序】
把 nnn 个点按照深度的奇偶性分类, 如果 iii 的深度为奇数,我们令 flag[i]=1flag[i]=1flag[i]=1。 如果 iii 的深度为偶数,我们令 flag[i]=−1flag[i]=-1flag[i]=−1。 对于修改操作 我们给以 xxx 为根的那整棵子树的每个点加上 val∗flag[x]val*flag[x]val∗flag[x], 这可以用DFS序+树状数组在 O(logn)O(logn)O(logn) 的时间复杂度内解决。 对于询问操作 我们在树状数组中算出 xxx 的权.原创 2020-09-12 17:02:35 · 249 阅读 · 0 评论 -
SSL1743 Debug【dfs】
DescriptionDescriptionDescription 经过了一整夜的激战,rc的部队终于攻下了虫族的首都Bugzilla。现在,rc决定亲自带领一队突击队员在虫族庞大的地道中寻找他的宿命之敌—Bug。 Bugzilla由N个基地组成。这N个基地被N-1段双向地道连接在一起,每段地道都连接两个基地,并且保证任意两个基地之间都可以通过地道互相到达。Bug就藏在其中的某段地道中。 开始时rc可以乘坐运输机降落在任何一个基地。每次到达一个基地时,rc都可以选择呼叫运输机将他和他的部队运输到任意原创 2020-08-14 17:01:46 · 169 阅读 · 0 评论 -
SSL1565 将功补过【树形DP】
题目大意 给你一颗二叉树,每一个节点都有一个价值,请你走m条路,使得价值最大。 思路 和二叉苹果树一样。 代码(无注释) #include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include<cmath> using namespace std; int jz[5010][5010],tree[5010][3],f[5010][5010]; int n.原创 2020-08-14 08:56:30 · 148 阅读 · 0 评论 -
2020.4.22普及C组 靶形数独(sudoku)【纪中】【模拟】【dfs】
这道题细节很多,需要仔细做答,工程量较大。 这里就不把模拟过程写出来了,请看注释: AC CodeAC~CodeAC Code #include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include<cmath> using ...原创 2020-05-01 19:45:56 · 204 阅读 · 0 评论 -
2020.2.29普及C组 子矩阵(submatrix)【纪中】【DP】【DFS】
本题有点难 正解:dfs+dp //刘子涵牛逼!刘子涵万岁! #include<iostream> #include<cmath> #include<cstring> #include<cstdio> using namespace std; int hc[50][50],zc[50],f[50][50],a[50][50],b[50]; int ...原创 2020-03-03 19:49:51 · 271 阅读 · 0 评论 -
2020.2.13普及C组 马蹄印【纪中】【dfs】
这道题几乎是dfs模板题,还是比较好做的。 #include<iostream> #include<cstdio> #include<cmath> using namespace std; int dx[5]={0,1,0,-1,0}; int dy[5]={0,0,1,0,-1}; int n,b[6][6],a[6][6],l=1,r; int ans; c...原创 2020-03-02 20:13:30 · 163 阅读 · 0 评论 -
2020.2.29普及C组 无根树(tree) 【纪中】【dfs】
这题考试时被吓住了。 到头来发现就是个dfsdfsdfs 从每个点出发dfsdfsdfs一遍求深度 唉! #include<iostream> #include<cstring> #include<cstdio> using namespace std; int maxn,n,x,y,a[1010][1010],v[1010]; void dfs(int x,i...原创 2020-03-01 21:47:18 · 192 阅读 · 0 评论 -
刻录光盘【图论】
原题链接传送门 emmmm… 两个 dfsdfsdfs 第一个 dfsdfsdfs 用来记录出栈的顺序 第二个 dfs 加一个 for第二个~ dfs~加 一个~for第二个 dfs 加一个 for 求有多少个强连通分量。 ☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟...原创 2020-01-17 10:34:00 · 327 阅读 · 0 评论 -
1088滑雪【DP】【记忆化搜索】
Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8...原创 2019-11-28 17:30:03 · 157 阅读 · 2 评论 -
求连通分量【三个广搜】【两个深搜】
原题链接传送门 DescriptionDescriptionDescription 求一个图的连通分量 InputInputInput n 顶点数(<=100)边 OutputOutputOutput 连通分量 Sample InputSample~InputSample Input 8 6 3 1 2 2 5 5 4 4 1 8 7 0 0 Sample O...原创 2019-12-14 16:14:27 · 187 阅读 · 0 评论 -
货员的难题【dfs】
原题链接传送门 DescriptionDescriptionDescription 某乡有 n 个村庄( 1 < n <40 ),有一个售货员,他要到各个村庄去售货,各村庄之间的路程 s(0<s<1000) 是已知的,且 A 村与 B 村与 B 村与 A 村的路大多不同,为了提高效率,他从商店出发到每个村庄一次,然后返回商店所在的村,假设商店所在的村庄为 1 ,他不知道选择什么样的路才能使所走的路...原创 2019-12-26 16:34:03 · 221 阅读 · 1 评论