![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Codeup
九筒-
这个作者很懒,什么都没留下…
展开
-
计蒜客-一维跳棋BFS思路与注意点--补充《算法笔记》
一维跳棋 本题思路 节点:当前的序列顺序str,遍历到当前节点时的空格序列step 边界:当前顺序与要求顺序相同时break 队列节点:空格前后两格的棋子,满足条件即可入队 个人思路的大体方向没有错。对空格前后两格棋子进行遍历,满足范围条件,与空格,即数字0交换位置,并在入队节点的step后追加空格交换后所在位置。 个人思路 此题使用bfs有些抽象,不像迷宫哪些容易想到,不知道如何扩散。 开始思...原创 2020-02-24 13:15:14 · 673 阅读 · 2 评论 -
计蒜客-引爆炸弹思路与注意点--补充《算法笔记》
引爆炸弹 在一个n*m的方格地图上,某些方格上放置着炸弹。手动引爆一个炸弹以后,炸弹会把其所在的行和列的所有炸弹引爆,被引爆的炸弹又能引爆其他炸弹,这样连锁下去。 现在为了引爆地图上的所有炸弹,需要手动引爆其中一些炸弹,为了把危险程度降到最低,请算出最少手动引爆多少个炸弹可以把地图上的所有炸弹引爆。 输入格式 第一行输入两个正数n,m,用空格隔开。 接下来n行,每行输入一个长度为m的字符串,表示...原创 2020-02-22 11:27:21 · 412 阅读 · 0 评论 -
Codeup.序列合并思路与注意点--补充《算法笔记》
序列合并 题目链接 本题思路 既然只输出前N个值,并且给出的数据已经排好序,可以先计算存储a[1] + b[1~N]的N个元素,并建立大顶堆(原因见下文个人思路)。然后计算num = a[2 ~ N] + b[1 ~ N],并与堆顶元素比较(堆顶元素最大),比堆顶元素小就删去堆顶元素,插入当前计算的num,最后堆排序输出即可 保证了删去的永远是最大值,插入的永远是相对小的值,个数始终保持在N个 A...原创 2020-03-04 17:28:51 · 173 阅读 · 0 评论 -
Codeup.More is better思路与注意点--补充《算法笔记》
More is better 题目链接 个人思路代码 本题1e7的数据量,很容易超时。 个人的超时思路,超时问题: 1e7的数据量做循环初始化 memset 初始化1e7数据量的数组 得出最大值时又一次循环1e7 超时代码 #include <bits/stdc++.h> using namespace std; const int maxn = 10000001; int n; ...原创 2020-03-03 20:27:53 · 192 阅读 · 0 评论 -
Codeup.通信系统(并查集)思路与注意点--补充《算法笔记》
通信系统 题目链接 个人思路 本题就是一个并查集的基本操作。 并查集初始化 根据输入数据两两合并 查找根节点并计数,判断所有点均在一个集合内,输出yes,否则为no 有两个值得注意的地方 本题注明要每个节点均要收到消息,并且不能重复收到消息,也就是说N个结点都要在一个树型集合内(图则会出现环路),根据树的性质,N个结点连通必须有N-1条边,因此M = N - 1才符合条件(可以把这个判断条件...原创 2020-03-03 13:57:00 · 175 阅读 · 0 评论 -
Codeup-BFS-8数码难题思路与注意点--补充《算法笔记》
八数码问题 题目链接 本题思路 将3*3的矩阵进行状态压缩,并对压缩后序列进行映射(map<string, bool>,康托展开),遍历节点并入队,直到找到最后的序列顺序。 状态压缩:状态压缩是个很神奇的东西,可以把复杂的状态压缩到一个简单的数来保存。类似于哈希?从某个课件上看到了这种总结感觉很不错:当状态维数很多,但总量很少时,可以将状态压缩为一个数来记录。以前以为状态压缩只能是d...原创 2020-02-25 17:44:10 · 162 阅读 · 0 评论 -
Codeup-排列组合思路与注意点--补充《算法笔记》
排列组合 全排列 组合输出 本题思路 排列组合问题本质上是在N个数字中选出K个数字的问题,全排列是特殊的排列组合,K=N,因此需要vis[]数组进行标识,防止遗漏或重复访问,并在进入递归之后取消标记,以便第二次访问。因此要按照求子集的思路解题。 递归参数:正在处理的数字或下标index;根据题意添加nowK表示已处理的数字个数 递归边界:数字超过规定界限index>n;已处理的数字个数达到题...原创 2020-02-22 20:18:26 · 168 阅读 · 0 评论 -
Codeup-迷宫问题思路与注意点--补充《算法笔记》
A1033 题目链接 本题思路 对于我这个新手来讲,在处理这道题的逻辑时,还是费了些周折的,下面来讲一下这道题的具体思路: 很明确这道题是使用贪心法 首先对所有加油站按距离远近进行排序;查找出可行范围内,距离当前加油站最近的,油价比当前低的加油站,加一部分油,使其刚好加到更合适的加油站。 若可行范围内没有比现在更便宜的加油站,则说明此处是相对最便宜的,应该把油加满,然后前往接下来价格相对较低的加油...原创 2020-02-21 22:51:15 · 248 阅读 · 0 评论 -
Codeup-出栈序列统计思路与注意点--补充《算法笔记》
Codeup 出栈序列统计 题目链接 本题思路 递归参数:入栈次数push,出栈次数pop,栈容量size 递归边界:出栈次数和入栈次数同时达到n次时 递归体:if(栈不空&&出栈次数不到n次)执行出栈操作;if(栈不满&&入栈次数不到n次)执行入栈操作 个人解题时的思路与启示 本题递归的个人思路仍然出现问题,且理解也出现偏差,在递归体中并不是入栈次数减一,伴随出栈...原创 2020-02-21 16:44:06 · 118 阅读 · 0 评论 -
Codeup-N皇后问题思路与注意点--补充《算法笔记》
A1033 题目链接 N皇后是dfs(递归或回溯法)的经典问题。接触过很多次这类问题,但始终无法真正吃透,做些总结,帮助梳理。 本题思路 递归参数:棋盘上的每一行作为参数,从第0行至第n行依次遍历 递归边界:当行数等于n时(若题目需要输出具体位于列的位置,也可将ans.size() == n作为边界的判断条件) 递归体:由于行作为参数进行顺序遍历,递归体中应对列进行顺序遍历,完成皇后的放置,并对行...原创 2020-02-21 15:30:49 · 144 阅读 · 0 评论