A*是一种搜索算法,一般基于一个估价函数f(x) = g(x) + h(x),通过这个函数来进行有方向的搜索以提高搜索的效率(而不是bfs、dfs那样的盲目搜索)其中g(x)指从初始状态到当前状态的花费,h(x)为当前状态到终状态的最小花费,以两者之和来估计起始状态到终状态的总花费f(x)在A*算法 ...
分类:
编程语言 时间:
2020-04-22 10:23:20
阅读次数:
79
(1)深度优先 1 #include <stdio.h> 2 int book[101],sum = 0,n,e[101][101]; 3 void dfs(int cur) 4 { 5 int i; 6 printf("%d",cur); 7 sum++; 8 if(sum == n) 9 { 1 ...
分类:
其他好文 时间:
2020-04-21 18:40:24
阅读次数:
46
题目: 幸运数是波兰数学家乌拉姆命名的。它采用与生成素数类似的“筛法”生成。 首先从1开始写出自然数1,2,3,4,5,6,.... 1 就是第一个幸运数。 我们从2这个数开始。把所有序号能被2整除的项删除,变为: 1 _ 3 _ 5 _ 7 _ 9 .... 把它们缩紧,重新记序,为: 1 3 5 ...
分类:
其他好文 时间:
2020-04-21 00:24:42
阅读次数:
99
深度优先搜索和广度优先搜索广泛运用于树和图中,但是它们的应用远远不止如此。 BFS 广度优先搜索一层一层地进行遍历,每层遍历都是以上一层遍历的结果作为起点,遍历一个距离能访问到的所有节点。需要注意的是,遍历过的节点不能再次被遍历。 第一层: 0 -> {6,2,1,5} 第二层: 6 -> {4} ...
分类:
其他好文 时间:
2020-04-20 18:54:14
阅读次数:
63
这种在图中找岛屿的题目我们在前面已经讲过了,这个题目同样属于这类题目,我们很自然想到的就是DFS和BFS方法。 一、题目描述 给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外 ...
分类:
其他好文 时间:
2020-04-20 12:04:17
阅读次数:
55
Given n integers, your task is to pick k out of them so that the picked number are minimum when do bitwise “AND” among all of them. For example, there ...
分类:
其他好文 时间:
2020-04-20 11:39:23
阅读次数:
56
Linova and Kingdom 主要是求一个节点的深度和它子节点的个数,然后深度减去子节点个数来保证,如果它后边有工业城市所带来的影响 主要是是用dfs int dfs(int x,int step){ vis[1]=1; len[x]=step; int t=0; for(int i=0;i ...
分类:
其他好文 时间:
2020-04-19 11:20:30
阅读次数:
74
经过思考蒜头君终于解决了怎么计算一个迷宫的最短路问题,于是蒜头君找到一个新的迷宫图,来验证自己是否真的会计算一个迷宫的最短路。 为了检验自己计算的是否正确,蒜头君特邀你一起来计算。 输入格式 第一行输入两个整数 n 和 m,表示这是一个 n×m 的迷宫。 接下来的输入一个 n 行 m 列的迷宫。其中 ...
分类:
其他好文 时间:
2020-04-19 09:21:46
阅读次数:
74
以前自学数据结构和算法的时候,回溯算法一直没涉及到,当时只听过,也没用过,这两天看到一个数独问题的博客,看下来居然一脸懵逼,这肯定是不能接受的,所以一鼓作气把回溯算法好好品了品,赶紧记下来,巩固一下。 回溯算法,简单来说,其实就是对解空间的一种深度优先搜索(DFS:Depth-First-Searc ...
分类:
编程语言 时间:
2020-04-19 01:04:55
阅读次数:
73
Examples input Copy 31 21 3 output Copy 0 input Copy 51 22 33 44 5 output Copy 2 Note Tree definition: https://en.wikipedia.org/wiki/Tree_(graph_theor ...
分类:
其他好文 时间:
2020-04-19 00:30:02
阅读次数:
83