
DFS
zxyoi_dreamer
退役了退役了爬了爬了,搞个锤子算法竞赛,不如好好享受大学生活。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【LOJ6182】说无可说(字符串哈希)(爆搜)
传送门题解:爆搜,用哈希求LCP跳过两个相同的部分。感觉复杂度很迷。。。代码:#include<bits/stdc++.h>#define ll long long#define re register#define cs constusing std::cerr;using std::cout;using ull=unsigned long long;...原创 2019-11-04 09:17:08 · 338 阅读 · 0 评论 -
【SDOI2019】连续子序列(找规律)(爆搜)
传送门SDOI今年怎么有三道数数题。。。题解:仔细一看发现是Thue−Morse\mathrm{Thue-Morse}Thue−Morse序列,我就知道肯定没有什么好事。。。我不知道在多少道找规律题里面发现过这个序列了,然而没有一次是做出来了的。。。根据题目的提示,我们考虑这样构造:对于当前串,将000替换成010101并将111替换成101010,于是考虑缩原来的那个串,每次我们可以...原创 2019-10-25 16:17:46 · 512 阅读 · 0 评论 -
【TC SRM 710 DIV1】 Hyperboxes(FMT)(搜索)
传送门题解:两个高维立方图形相交,当且仅当在每一维都相交。发现对于某个维度的相交情况,每一维是相同的。所以我们算出一维的情况后FMT即可。直接算很扯,考虑将所有端点排序,发现我们可以枚举端点的排列顺序。注意到有的端点可能重合,我们需要枚举哪些端点重合。也就是,我们需要直接枚举哪些端点是不一样的,分别在哪个组里面,然后对于一个端点的分组和偏序,我们爆搜有多少种划分方式满足它就行了。...原创 2019-09-03 14:14:44 · 252 阅读 · 0 评论 -
2018.11.06【NOIP2015】【洛谷P2668】斗地主(DP预处理)(搜索)
传送门解析:其实不考虑点数大小的话只有张数对我们是有用的。所以可以预处理出有iii张单牌,j∗2j*2j∗2张对子,k∗3k*3k∗3张三条,zzz个炸弹,lll个王的情况下打完散牌要的最少次数,顺子通过贪心搜索一下就行了。代码:#include<bits/stdc++.h>using namespace std;#define ll long long#define...原创 2018-11-06 10:44:17 · 156 阅读 · 0 评论 -
2018.11.01【BZOJ2393】Cirno的完美算数教室(容斥原理)(DFS)
DarkBZOJ传送门解析:这个首先要分析一下,就算所有2,92,92,9取遍,101010^{10}1010中最多也只有2102^{10}210个数,然后再打表把倍数删去,只有466466466个。而这466466466个的lcmlcmlcm的增长是非常快的,瞬间就会超过RRR的范围,剪枝。所以这道题可以容斥用DFSDFSDFS大力搞一波,从大的数开始枚举会更快。代码:#incl...原创 2018-11-01 19:44:21 · 187 阅读 · 0 评论 -
2018.11.01【NOIP训练】递增数列(IDA*)
传送门解析:首先这道题不能DpDpDp,因为要处理后效性的话数组开不了那么大。。。而且两个数共用同一个生成途径是真的很难处理的部分。然后不可以BFSBFSBFS,有兴趣可以试试,因为随着深度的增加,状态数爆炸增长O(dep2)O(dep^2)O(dep2),显然会gg。所以这种题就该迭代加深出场了。然而迭代加深还是需要剪枝,这里考虑我们当前搜索深度为depdepdep,限制深度为len...原创 2018-11-01 15:18:09 · 177 阅读 · 0 评论 -
2018.11.01【NOIP训练】木棒分组(DFS剪枝优化)
传送门解析:经典搜索剪枝题啊。。。然而我居然今天才做。。。这道题其实核心思想就是剪枝,减掉所有的无用状态。首先枚举最终的答案(显然是总长的约数),我们就只需要看这个答案能否满足就行了。从最大的木棒开始,试图凑出这个长度。大的打头,小的填空。每次记录当前已经用的木棒总长以及当前这一组的木棒已经凑出来的长度。那么剪枝就十分显然了,先把超出长度的减掉,然后把每次长度相同的减掉就可以过了...原创 2018-11-01 15:02:40 · 232 阅读 · 0 评论 -
2018.11.01【NOIP训练】cost数(容斥原理)(DFS)
传送门解析:一眼应该看得出来是一道容斥原理,不然就请回去学习组合数学。然而我就是不知道容斥怎么实现。。。学习了一下用DFSDFSDFS枚举每个选择与不选的情况同时更改系数是111还是−1-1−1就行了。这道题主要的剪枝就是,考虑我们枚举的lcmlcmlcm在某个时刻很容易就超过了上界,这个显然可以直接减掉。代码:#include<bits/stdc++.h>usin...原创 2018-11-01 14:41:44 · 322 阅读 · 0 评论 -
2018.10.26【洛谷P1363】幻想迷宫(搜索)
传送门解析:扩四倍广搜似乎也可以啊,但是一倍空间的深搜跑的飞快啊,不知道为什么。。。直接记录上一次深搜到这个坐标的无限平面上的位置,如果有两次不同的无限平面的位置能够到达这里,必然存在无穷远的道路。代码:#include<bits/stdc++.h>using namespace std;#define ll long long#define re register...原创 2018-10-26 22:54:07 · 171 阅读 · 0 评论 -
2018.10.06【BZOJ1086】【洛谷P2325】【SCOI2005】王室联邦(树分块)
BZOJ传送门洛谷传送门解析:代码:#include&amp;lt;bits/stdc++.h&amp;gt;using namespace std;#define ll long long#define re register#define gc getchar#define pc putchar#define cs constinlineint getint(){ re int...原创 2018-10-06 17:56:18 · 180 阅读 · 0 评论 -
2018.10.13【HAOI2007】【POI2002】【BZOJ1053】【洛谷P1463】反素数(逆用唯一分解)(DFS)
BZOJ传送门洛谷传送门解析:有dalaodalaodalao打表直接把69个数全部打出来了。。。(我都不好意思说我这个交的是打表的代码)首先要知道约数个数公式:对于一个数nnn,若n=∑i=1tpikin=\sum_{i=1}^{t}p_i^{k_i}n=∑i=1tpiki,其中pip_ipi是互不相同的质数,则nnn的约数个数为∏i=1t(ki+1)\prod_{i=1}^...原创 2018-10-13 09:34:13 · 158 阅读 · 0 评论 -
2018.09.26【BZOJ4602】【洛谷P4079】【SDOI2016】齿轮(搜索)(图的遍历)
洛谷传送门BZOJ传送门解析:这道题O(V+E)O(V+E)O(V+E)就过了啊。。。然而官方标解是并查集。。。我。。。思路:只要按照图的遍历一边跑一遍验证就行了。DFSDFSDFS比较好写。代码:#include<bits/stdc++.h>using namespace std;#define ll long long#define re regist...原创 2018-09-26 21:49:13 · 198 阅读 · 0 评论 -
2018.09.12【JLOI2014】【BZOJ3629】聪明的燕姿(约数和)(DFS)
[传送门](https://www.lydsy.com/JudgeOnline/problem.php?id=3629)---# 解析:首先,我们需要知道一个约数和公式。对于$n= \prod_{i=1}^{t}p_i^{k_i}$,$n$的约数之和(包括$n$和1)为$\prod_{i=1}^{t}\sum_{j=0}^{k_i}p_i^{j}$,所以我们要求的就是所有合法的$n$,使得其约数之和$s$.搜索,由于$\sum_{j=0}^{k_i}p_i^{j}$这原创 2018-09-12 00:24:05 · 201 阅读 · 0 评论 -
2018.09.07【COGS693】Antiprime数 (唯一分解)
传送门解析:以后再说。。。。代码:#include&lt;bits/stdc++.h&gt;using namespace std;#define ll long long#define re register#define gc getchar#define pc putchar#define cs const#define st staticinl...原创 2018-09-07 19:13:49 · 262 阅读 · 0 评论