算法入门训练
persimmon_xh
这个作者很懒,什么都没留下…
展开
-
宽度优先搜索(一)
宽度优先搜索 首先需要明确宽度优先搜索解决什么类型的问题,宽度优先搜索是用于解决在一幅图中找到从起点到终点的最近距离的问题。关键词:图,最短距离。 深度优先搜索是栈结构,而宽度优先搜索是队列结构的。 上框架:labaladong上的,不是我写的 ...原创 2021-02-16 15:41:55 · 387 阅读 · 0 评论 -
深度优先搜索(二)
N皇后问题 用深度优先搜索,直接套用模板就好。 注意mark函数和unmark函数 mark函数把格子中的值-1,其中unmark函数,把格子中的值+1,为什么不是直接改变值,是因为有可能多个皇后都攻击那一个位置,如果直接改变值,那么可能会影响某个皇后的攻击范围。 代码 #include<iostream> #include<cstring> using namespace std; const int max_num=100; int n; int s[max_num][max_n原创 2020-12-28 10:51:44 · 108 阅读 · 0 评论 -
深度优先搜索(一)
深度优先搜索 经大佬指导,才发现我对深度优先搜索的理解非常有问题,不过发现问题及时改正! 先上深度优先搜索模板原创 2020-12-27 16:01:15 · 147 阅读 · 0 评论 -
动态规划(一)——矩阵连乘
矩阵连乘 题目:给定 n 个矩阵 hA 1 ,A 2 ,…,A n i, 其中 A i 和 A i+1 是可乘的, i = 1,2,…,n − 1. 考虑这 n 个矩阵的连乘积 A 1 × A 2 × ··· × A n 的计算方法? 首先可以暴力枚举,列举所有矩阵连乘的方法所需要的计算量,然后选出最小的那个一个,但是矩阵连乘的方法数很大,可以通过p2函数进行计算,见下列代码。 计算矩阵连乘的方法数的公式为: int p2(int num)//num为矩阵个数 { if(num==1) { r原创 2020-12-25 18:40:44 · 2012 阅读 · 2 评论 -
快读
快读 今天做了几个题…但是都不知道错哪里?明天再仔细读大佬代码,然后看看自己错哪里了吧,而且在一题上花两个多小时,这么蠢的应该也就我了…后面一题明明是之前做过的dfs,当时为什么就想在那一题上死磕了呢,明天好好学习destor。 今天学习到了快读 inline int read() { char c = getchar(); int x = 0, f = 1; while(c < '0' || c > '9') {if(c == '-') f = -1; c = getchar();} w原创 2020-12-20 22:33:31 · 99 阅读 · 0 评论 -
洛谷的题——12月10日^-^
P1002 过河卒 棋盘上 AAA 点有一个过河卒,需要走到目标 BBB 点。卒行走的规则:可以向下、或者向右。同时在棋盘上 CCC 点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为“马拦过河卒”。 棋盘用坐标表示,AAA 点 (0,0)(0, 0)(0,0)、BBB 点 (n,m)(n, m)(n,m),同样马的位置坐标是需要给出的。 题目链接:https://www.luogu.com.cn/problem/P1002 我的思路:一开始我以为这是一道宽度优先搜索,但是原创 2020-12-10 20:56:20 · 143 阅读 · 0 评论