我终于知道我为什么不喜欢写博客了。。 因为我的博客太丑了。 还好我知道了什么是打表。 一个深搜模板 int search(int t) { if(满足输出条件) { 输出解; } else { for(int i=1;i<=尝试方法数;i++) if(满足进一步搜索条件) { 为进一步搜索所需要的状 ...
分类:
其他好文 时间:
2019-11-03 17:56:12
阅读次数:
74
动态规划 本人对动态规划的理解:我认为动态规划其实就是搜索的一种,但更加优美,速度更高。递归的方式就是老师说的备忘录,其实就是记忆化深搜,但本质上就是通过状态转移进行递推,所以能通过迭代的方式求解,当前问题的最优解依赖于子问题的最优解,于是当最小子问题初始化出答案后就可以一步一步往当前问题递推。妙啊 ...
分类:
其他好文 时间:
2019-11-01 12:47:10
阅读次数:
60
定义 二分图也称二部图,是图论里的一种特殊模型,也是一种特殊的网络流。其最大的特点在于,可以将图里的顶点分为两个集合,且集合内的点没有直接关联,如下图所示。 如果某个图为二分图,那么它至少有两个顶点,且其所有回路的长度均为偶数,任何无回路的的图均是二分图。 1.染色法判断二分图 染色法是对每一个点深 ...
分类:
编程语言 时间:
2019-10-30 18:30:22
阅读次数:
92
浅谈DFS序 本篇随笔简要讲解一下信息学奥林匹克竞赛中有关 树的DFS序 的相关内容。 DFS序的概念 先来上张图: 树的DFS序,简单来讲就是对树从根开始进行深搜,按搜到的时间顺序把所有节点打上时间戳。 就比如上面这棵树,它的 一个DFS序 就是: 1 2 8 8 5 5 2 7 7 4 3 9 ...
分类:
其他好文 时间:
2019-10-29 14:00:41
阅读次数:
71
深搜模板题 https://www.acwing.com/problem/content/846/ ...
深搜的一道水题 https://www.acwing.com/problem/content/844/ 正确输入输出 ...
题面传送门 我们发现只有25个格子,应该是可以用爆搜过掉这道题的。但是裸的dfs时间复杂度过高,我们要进行相应的优化。 首先,由于马的数量过多,我们应该选择让空格“走”。 接下来我们发现这道题又很明显的一个限制条件,最多不能超过15步,所以我们可以使用迭代加深进行优化,所谓的迭代加深搜索,本质上还是 ...
分类:
其他好文 时间:
2019-10-24 09:47:50
阅读次数:
104
迭代深搜简单来说就是限制深度的深搜,这样就可以避免像广搜一样占用大量空间,又可以像广搜找到最佳的路径。 两道例题 1. "埃及分数" cpp include include include using namespace std; const int N = 10; typedef long lon ...
分类:
其他好文 时间:
2019-10-20 13:30:27
阅读次数:
103
好的,接下来就是本萌新的第一篇博客啦。直接上深搜!深度优先搜索(Depth-First-Search),简称“深搜”(dfs),是我们蒟蒻们最基本的搜索操作之一。简单地说,深搜就是递归。下面是抄来的解释:深度优先搜索用一个数组存放产生的所有状态。(1) 把初始状态放入数组中,设为当前状态;(2) 扩 ...
分类:
其他好文 时间:
2019-10-04 00:05:40
阅读次数:
121
DFS 深度优先搜索 通过搜索得到一棵树形图 策略:只要能发现没走过的点,就走到它。有多个点可走就随便挑一个,如果无路可走就回退,再看有没有没走过的点可走。 在图上寻找路径【少数可用最短路解决】:最短路不能解决路径有顺序的,也就是如果路径的边权与之前经过的点火这路有关,那就只能深搜 解决递归形式的问 ...
分类:
其他好文 时间:
2019-10-02 18:41:50
阅读次数:
101