dfs
dfs
JA_yichao
这个作者很懒,什么都没留下…
展开
-
买汽水【折半搜索】
题目思路我们首先搜索一半的范围,然后另一半就用二分来判断是否可行。这样时间复杂度是原创 2021-08-08 11:50:34 · 161 阅读 · 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 · 155 阅读 · 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 · 218 阅读 · 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 · 210 阅读 · 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 · 225 阅读 · 0 评论 -
SSL1743 Debug【dfs】
DescriptionDescriptionDescription经过了一整夜的激战,rc的部队终于攻下了虫族的首都Bugzilla。现在,rc决定亲自带领一队突击队员在虫族庞大的地道中寻找他的宿命之敌—Bug。 Bugzilla由N个基地组成。这N个基地被N-1段双向地道连接在一起,每段地道都连接两个基地,并且保证任意两个基地之间都可以通过地道互相到达。Bug就藏在其中的某段地道中。 开始时rc可以乘坐运输机降落在任何一个基地。每次到达一个基地时,rc都可以选择呼叫运输机将他和他的部队运输到任意原创 2020-08-14 17:01:46 · 143 阅读 · 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 · 130 阅读 · 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 · 181 阅读 · 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 · 231 阅读 · 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 · 152 阅读 · 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 · 168 阅读 · 0 评论 -
刻录光盘【图论】
原题链接传送门emmmm…两个 dfsdfsdfs第一个 dfsdfsdfs用来记录出栈的顺序第二个 dfs 加一个 for第二个~ dfs~加 一个~for第二个 dfs 加一个 for求有多少个强连通分量。☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟...原创 2020-01-17 10:34:00 · 303 阅读 · 0 评论 -
1088滑雪【DP】【记忆化搜索】
DescriptionMichael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 8...原创 2019-11-28 17:30:03 · 149 阅读 · 2 评论 -
求连通分量【三个广搜】【两个深搜】
原题链接传送门DescriptionDescriptionDescription求一个图的连通分量InputInputInputn 顶点数(<=100)边OutputOutputOutput连通分量Sample InputSample~InputSample Input86 31 22 55 44 18 70 0Sample O...原创 2019-12-14 16:14:27 · 162 阅读 · 0 评论 -
货员的难题【dfs】
原题链接传送门DescriptionDescriptionDescription某乡有 n 个村庄( 1 < n <40 ),有一个售货员,他要到各个村庄去售货,各村庄之间的路程 s(0<s<1000) 是已知的,且 A 村与 B 村与 B 村与 A 村的路大多不同,为了提高效率,他从商店出发到每个村庄一次,然后返回商店所在的村,假设商店所在的村庄为 1 ,他不知道选择什么样的路才能使所走的路...原创 2019-12-26 16:34:03 · 201 阅读 · 1 评论