搜索
日常懵
菜鸟一只
展开
-
牛客:牛老板
牛老板(记忆化搜索dfs)链接#include <bits/stdc++.h>using namespace std;const int N = 20;long long n6[N] , n9[N] ;long long k ;map<long long , long long > M ;void init(){ n6[0 ] = 1 , n9[0] = 1 ; for(int i = 1 ; i <= 18; i ++ ) { n6[i]原创 2021-08-20 23:22:01 · 261 阅读 · 0 评论 -
迷阵
迷阵牛客网 题目链接思路:二分+宽搜最小是0 ,最大是3000二分出midfor循环i+mid来找答案宽搜中最小值为1 ,最大值为i+mid宽搜:从1 , 1 开始搜索可以走的并且没有走过的加到queue中如果可以走到终点,返回true,即这个mid是符合答案的将ans更新为mid,同时将最大值更新为mid如果不可以,把最小值更新为mid+ 1#include <bits/stdc++.h>using namespace std;typedef pair<原创 2021-05-03 21:19:16 · 125 阅读 · 0 评论 -
树的直径
树的直径思路从一个点开始,找距离这个点最远的点x从x开始搜索,找距离x点最远的点 yx和y距离就是数直径的最大值题目Cow Marathon 代码 :#include <iostream>#include <queue>#include <cstring>#include <algorithm>#include <cstdio>//poj不支持万能头using namespace std;const int N=原创 2021-04-10 15:23:15 · 72 阅读 · 0 评论 -
搜索
搜索深度优先搜索(回溯) dfs枚举每个状态修改状态递归搜索回溯恢复现场eg:排列数字给定一个整数n,将数字1~n排成一排,将会有很多种排列方法。现在,请你按照字典序将所有的排列方法输出。#include<bits/stdc++.h>using namespace std;const int N =10;int all[N],n;bool ok[N];//状态数组void dfs(int u){ //边界条件,输出结果 if(u == n)原创 2021-02-20 14:58:22 · 116 阅读 · 0 评论