DFS(深度优先搜索)
Zeolim
这个作者很懒,什么都没留下…
展开
-
[Codeforces] 592 div2 A B D E
A - Pens and Pencils emm题意忘了B - Rooms and Staircases 有两层房子,每层有k间 每间要么是0要么是1 0只能左右, 1可以上下 问最多能走多少间。不用考虑上下左右来回走,枚举每个转折上面走最大下面走最大更新极值即可,来回走必然不如这样优/* Zeolim - An AC a day keeps the bug aw...原创 2019-10-24 21:25:44 · 250 阅读 · 0 评论 -
[暴搜] 树直径
无向无环图求最远两元素距离暴力搜索1.任取点穷举最远2.得点再穷举最远//#pragma GCC optimize(2)#include <cstdio>#include <iostream>#include <cstdlib>#include <cmath>#include <cctype>#inclu...原创 2018-09-06 20:20:37 · 176 阅读 · 0 评论 -
[树直径] [POJ] CowMarathon
时间复杂度超高#pragma GCC optimize(2)#include <cstdio>#include <iostream>#include <cstdlib>#include <cmath>#include <cctype>#include <string>#include <cstri...原创 2018-09-06 20:58:26 · 150 阅读 · 0 评论 -
[搜索] [洛谷] P1691 有重复元素的排列问题
搜索 OR next_permutation(arr, arr + len);//#pragma GCC optimize(2)#include <cstdio>#include <iostream>#include <cstdlib>#include <cmath>#include <cctype>#include...原创 2018-09-24 10:58:47 · 352 阅读 · 0 评论 -
[洛谷] P1515 旅行
dfs 递推 都是15ms递推://#pragma GCC optimize(2)#include <cstdio>#include <iostream>#include <cstdlib>#include <cmath>#include <cctype>#include <string>#incl...原创 2018-09-24 11:41:43 · 512 阅读 · 0 评论 -
[洛谷] P2802 回家
dfs 标记 + 回溯//#pragma GCC optimize(2)#include <cstdio>#include <iostream>#include <cstdlib>#include <cmath>#include <cctype>#include <string>#include ...原创 2018-09-24 18:30:51 · 405 阅读 · 0 评论 -
[DFS][洛谷] P2040 打开所有的灯
暴力dfs将状态转换为数字串, 用map记录当前状态的最小步数若大于当前步则可剪枝搜完后输出MAP中全1的步数即可解法二可以证明一个点重复点击是无效的因此每次搜完打标记延展出的路不搜重复点再回溯更快也更容易做题时没有推出了这个结论 写了发暴力DFS将所有状况搜完了//#pragma GCC optimize(2)#include <cstdio>...原创 2018-10-18 09:53:18 · 366 阅读 · 0 评论 -
[模板][图论]二分图匹配
递归查询nxt数组记录下一个可能值依次搜索出最大匹配值正确性已被证明在此不做赘述int k, n, m;const int MAXN = 520;vector <int> edge[MAXN];int used[MAXN] = {0};int nxt[MAXN] = {0};bool rfind(int x){ for(int i = 0;...原创 2019-03-07 18:07:32 · 127 阅读 · 0 评论 -
[技巧]ARubbish
套树会爆内存,sort PAIR 离散后暴搜染色/* Zeolim - An AC a day keeps the bug away*///#pragma GCC optimize(2)#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef long double ld;#...原创 2019-06-09 19:21:02 · 227 阅读 · 0 评论 -
[全排列] hdu 6628 permutation 1
http://acm.hdu.edu.cn/showproblem.php?pid=6628数据范围T = 40 N = 20 K <= 1e4看起来好像很大的样子但如果仔细分析复杂度的话暴力搜索 1e4个叶子节点的复杂度最多也不会超过1e5(带常数)因此这个题可以构造一种搜索序列硬生生遍历1w个子结果即可一种比较简单的实现方式,对于8以下的序列,直接库函数生成所有结果排列并...原创 2019-08-07 09:20:17 · 163 阅读 · 0 评论 -
19多校(十) Hilbert Sort
希尔伯特曲线如图所示观察易得为分形暴力分形过程很容易,但是时间爆炸逆向思考,对于任意点,可以递归求得分型过程(设 左上角为第1进入块左下2块 右下3块 右上4块)且左上为原图形左旋, 下边两个都是原图形, 右上是原图形关于x = y对称将以上分形过程做唯一映射并排序输出即可有点卡常, vector string超时, 用5进制映射比较好/* Zeolim...原创 2019-08-20 13:04:18 · 863 阅读 · 0 评论 -
[DFS] [洛谷] P1433 吃奶酪
该题DFS的过程没有任何乐趣甚至打完都处于AC了?可是为什么AC呢?的状态 这道题的重点 难点在于提前枚举所有点之间的距离有了该操作(也是我没有想到的操作)才使得搜索过程成为可能既然可以搜索那么一发AC是非常容易的#include <iostream>#include <cmath>#include <iomanip&...原创 2018-08-03 12:27:09 · 309 阅读 · 0 评论 -
[DFS] [洛谷] P1010 幂次方
简单水题题解都省的看想到用数组保留二进制以后XJB递归一下就完了注:再提示自己一遍所有的递归题不要上来就去搞递归 剪枝 终止条件应该把第一层的内容(大框架)全部搞出来然后向下递归即可以本题为例能让程序输出137 = 2(7)+2(3)+2(0)2(7)+2(3)+2(0)就已经解决了剩下的就是细枝末节简单的东西了#include &...原创 2018-08-03 10:33:26 · 369 阅读 · 0 评论 -
[DFS] [洛谷] P1706 全排列问题
私以为此乃DFS之基础即DFS均以此拓展而来#include <iostream>#include <cstdio>using namespace std;const int MAXN = 1e5 + 10;int N;bool used[MAXN] = {0};int arr[MAXN] = {0};void dfs(int rit,...原创 2018-08-07 10:55:30 · 663 阅读 · 0 评论 -
[DFS] [洛谷] P1019 单词接龙
dfs刚开始卡了一段纠结怎么用字符串添加再回溯确实没啥思路后来发现把题目完全转换为可以后接的数字矩阵就会简单很多然后dfs对我而言dfs的本质是先写生成全排列的框架然后加上判定条件和回溯即可解决问题#include <iostream>#include <cstring>using namespace std;const...原创 2018-07-16 17:05:16 · 291 阅读 · 0 评论 -
[DFS] [洛谷] P1605 迷宫
迷宫类是经典dfs地图数组标记障碍物存在数组表姐已经是否走过边dfs边回溯枚举所有符合题意的组合#include <iostream>using namespace std;const int MAXN = 6;int N, M, T, ans = 0;int bx, by, ex, ey, ta, tb;int arr[MAXN][MAXN...原创 2018-07-17 10:40:15 · 338 阅读 · 0 评论 -
[DFS] [记忆化] [洛谷] P1434 [SHOI2002]滑雪
这个题求连续下降距离第一个想法肯定是DFS接着想一下可能会出现向下深搜的过程中搜到已经搜过的点所以再记忆化以下#include <iostream>using namespace std;typedef long long ll;const int MAXN = 1e3 + 10;int arr[MAXN][MAXN] = {0}, dp[MAX...原创 2018-07-17 18:15:07 · 485 阅读 · 0 评论 -
[DFS] [洛谷] P1219 八皇后 O(1)判断
深搜 dfs构思了好久才写出框架,又调了好久思路就是画棋盘加头脑风暴模拟递归构建函数不看题解自己一点点磨出来很有成就感递归框架和选数很像 大体是一样的本质是用递归模拟出所有组合判断输出用二维数组的方式判断时间复杂度较高回来再想想办法优化一下优化: 四数组O(1)判断a记录行, b记录列, c记录左斜, d记录右斜左斜行...原创 2018-07-13 12:42:18 · 301 阅读 · 0 评论 -
[搜索][51nod] 1268 和为K的组合
1268 和为K的组合 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注给出N个正整数组成的数组A,求能否从中选出若干个,使他们的和为K。如果可以,输出:"Yes",否则输出"No"。Input第1行:2个数N, K, N为数组的长度, K为需要判断的和(2 <= N <= 20,1 <= K <...原创 2018-05-17 07:18:14 · 201 阅读 · 0 评论 -
[洛谷] P1025 数的划分
emmmXJB算法暴力DFS980ms擦线过私以为不是正确做法…#include <iostream>using namespace std;typedef long long ll;ll n, k;ll ans = 0;void dfs(int rit, int step, int rnum){ if(step == k &...原创 2018-07-31 15:37:23 · 254 阅读 · 0 评论 -
[DFS] F-Call to your teacher
题目地址:https://www.nowcoder.com/acm/contest/76/F搜索利用队列有序性质直接往后搜索即可 搜过的直接删除 通俗易懂#include <iostream>#include <queue>using namespace std;int main() { queue <int> q1[2...原创 2018-03-11 14:29:16 · 245 阅读 · 0 评论 -
[暴力DFS] [洛谷] P1057 传球游戏
数据范围较小可以dfs但是超时然后暴力打表 半个小时就跑完了O(1) AC#include <iostream>using namespace std;typedef long long ll;const int MAXN = 31;ll arr[MAXN][MAXN] = {{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,...原创 2018-08-02 12:38:16 · 283 阅读 · 0 评论 -
[DFS][记忆化][ZZNUOJ]生活所迫
一堆分两堆平分代价一否则代价二求总代价 #pragma GCC optimize(2)#include <cstdio>#include <iostream>#include <cstdlib>#include <cmath>#include <cctype>#include <string>...原创 2018-08-11 16:11:35 · 167 阅读 · 0 评论 -
[DP][DFS]P1164 小A点菜
没有任何思路//#pragma GCC optimize(2)#include <cstdio>#include <iostream>#include <cstdlib>#include <cmath>#include <cctype>#include <string>#include <cstr...原创 2018-08-11 16:18:25 · 186 阅读 · 0 评论 -
[DFS] [洛古] P1101 单词方阵
写出来出现一大堆“yizhong”一看是想复杂了只用沿着一个方向dfs就行用循环可以简化程序#include <iostream>using namespace std;const int MAXN = 1e2 + 5;string mode = "yizhong";int ans[MAXN][MAXN] = {0};int move[8][2]...原创 2018-07-16 18:14:26 · 218 阅读 · 0 评论