![](https://img-blog.csdnimg.cn/1e1df2678ce848fca151a4a5dcf54691.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
保研上机考试准备
文章平均质量分 53
备战保研上机考试
Alkali!
本科:NUAACCST16191
硕士:SEUCSE220
展开
-
保研机试备考十五:字符串处理 集大成者
这题没什么算法含量在里面,主要。这是个多维度排序问题。原创 2022-07-16 00:16:09 · 71 阅读 · 0 评论 -
保研机试备考十四:BFS
因为数字本身可能会重复出现,而且对于一个字符串交换它两个不同相邻位置得到的新字符串,也可能产生重复,但我们要求的是最少交换次数,因为BFS的性质,保证了可以实现最小,所以可以设置一个map映射组,来存储已经出现过的字符串情况,这道题进入BFS暴搜前,要做一些基本的判断,很容易就考虑不到,要做好了。这题看着挺麻烦,虽然一开始就知道是用BFS来写,但还是很难下手,难点在于。在前面入队的条件中,保证了我们入队的行(列)一定是可以全部被恢复的。,以作到剪枝的作用,降低时间复杂度。,将行号映射为本身,即。...原创 2022-07-15 16:35:10 · 156 阅读 · 0 评论 -
保研机试备考十四:DFS
https://www.acwing.com/problem/content/description/3432/给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。我们假设对于小写字母有 a原创 2022-07-11 11:40:56 · 160 阅读 · 0 评论 -
保研机试备考十三:摩尔投票法
https://www.acwing.com/problem/content/48/如果一个数的个数大于一半,这个数最后的数量肯定大于其他所有数的数量之和。原创 2022-07-10 20:30:37 · 90 阅读 · 0 评论 -
保研机试备考十二:多路归并 三指针
https://www.acwing.com/problem/content/description/3877/给定三个集合,分别从每个集合中挑一个元素,求所有挑法中三个元素距离的和最小的挑法。以上三个集合中的元素都是按升序顺序给出的。假设将三个数组里的元素归并成一个升序数组,则最终的结果可以理解成在三个数组里各选一个元素,然后距离等于2×(max−min)2\times(max-min)2×(max−min)这个过程可以用三个指针来完成,是一个三路归并的过程因为要求的“距离”要尽可能的小,这么用原创 2022-07-10 19:53:19 · 99 阅读 · 0 评论 -
保研机试备考十一:哈希表和KMP
保研机试备考十一:哈希表和KMPAcWing 840. 模拟散列表题目https://www.acwing.com/problem/content/842/思路https://blog.csdn.net/weixin_45798993/article/details/122724398代码#include<iostream>#include<cstring>using namespace std;#define null 0x3f3f3f3fconst int原创 2022-05-08 15:18:46 · 575 阅读 · 0 评论 -
保研机试备考十:最小生成树、最短路
保研机试备考十:最小生成树、最短路AcWing 858. Prim算法求最小生成树题目https://www.acwing.com/problem/content/860/思路参考我初学时的博客https://blog.csdn.net/weixin_45798993/article/details/122813952代码#include<iostream>#include<cstring>using namespace std;const int N=510,I原创 2022-05-07 10:25:43 · 116 阅读 · 0 评论 -
保研机试备考九:拓扑排序
保研机试备考九:拓扑排序AcWing 848. 有向图的拓扑序列题目https://www.acwing.com/problem/content/850/思路初始化用一个数组,记录下每个点的入度。宽搜之前把入度为0的点先入队,然后开始宽搜,把队首元素出队,相继去使它的邻接点的入度–,判断入度是否为0,为0就入队。代码#include<iostream>#include<cstring>using namespace std;const int N=1e5+10;原创 2022-05-06 09:53:47 · 90 阅读 · 0 评论 -
保研机试备考八:Huffman树
保研机试备考八:Huffman树AcWing 148. 合并果子题目https://www.acwing.com/problem/content/150/思路霍夫曼树的本质是贪心,每次选最小的两个合并就行。用优先队列维护一个小顶堆,每次从堆顶取两个元素合并即可,循环结束条件是堆的元素个数等于1了。优先队列:priority_queue默认是大顶堆使之表示小顶堆:priority_queue <类型,vecotr <类型>,greater <类型>> 变量原创 2022-05-05 16:57:05 · 1167 阅读 · 0 评论 -
保研机试备考七:二叉搜索树与表达式树
保研机试备考七:二叉搜索树与表达式树AcWing 3786. 二叉排序树题目https://www.acwing.com/problem/content/3789/思路对于插入而言:根据二叉排序树,左儿子<根节点<右儿子的性质,找到插入的点该插入的位置插入即可,该位置一定是个叶结点的位置,即查找时碰到空值。对于删除而言:先找到要删除的节点的位置如果要删除的点是叶结点,直接删除;如果要删除的点有一个分支,那么把这个点删了,分支上移;如果要删除的点有左右儿子,这时需要找到原创 2022-05-04 14:53:28 · 311 阅读 · 0 评论 -
保研机试备考六:树的遍历
保研机试备考六:树的遍历AcWing 3766. 二叉树的带权路径长度题目https://www.acwing.com/problem/content/3769/思路二叉树的带权路径长度(WPL)是二叉树中所有叶结点的带权路径长度之和,也就是每个叶结点的深度与权值之积的总和。给定一棵二叉树 T,请你计算并输出它的 WPL。这题涉及到了层数,对于树的遍历应该使用层次遍历。使用一个队列来辅助。详细思路见代码代码/** * Definition for a binary tree no原创 2022-05-03 09:31:18 · 129 阅读 · 0 评论 -
保研机试备考五:表达式求值
保研机试备考五:表达式求值AcWing 3302. 表达式求值题目https://www.acwing.com/problem/content/3305/思路代码#include<iostream>#include<cstring>#include<unordered_map>#include<stack>using namespace std;stack<char> op; //符号栈stack<int>原创 2022-05-02 19:38:00 · 283 阅读 · 0 评论 -
保研机试备考四:日期问题
保研机试备考四:日期问题AcWing 3607. 打印日期题目https://www.acwing.com/problem/content/description/3610/思路分成闰年和非闰年的情况,把每个月的第一天的时间处理出来,先找到在哪个月,再减去那个月的起始天数算出具体是这个月的哪一天。代码#include<iostream>using namespace std;int daysr[12]={1,32,61,92,122,153,183,214,245,275,30原创 2022-05-01 20:57:49 · 311 阅读 · 0 评论 -
保研机试备考三:链表操作
保研机试备考三:链表操作AcWing 66. 两个链表的第一个公共结点题目https://www.acwing.com/problem/content/62/思路一开始想着暴力做,O(n2)O(n^{2})O(n2)的遍历两个链表,发现TLE了。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) :原创 2022-04-30 10:46:39 · 155 阅读 · 0 评论 -
保研机试备考二:进制转换
保研机试备考一:进制转换AcWing 3373. 进制转换题目https://www.acwing.com/problem/content/3376/思路将一个长度最多为 30 位数字的十进制非负整数转换为二进制数输出。这里数字的长度最多为30位,可以说是很长了,不能简单的用long long来存,要用高精度来存,数组模拟一下即可。代码#include<iostream>#include<vector>#include<algorithm>#incl原创 2022-04-29 16:29:23 · 327 阅读 · 0 评论 -
保研机试备考一:排序
保研机试备考一:排序排序:AcWing 3375. 成绩排序题目https://www.acwing.com/problem/content/3378/思路给定学生的成绩单,成绩单中包含每个学生的姓名和分数,请按照要求将成绩单按成绩从高到低或从低到高的顺序进行重新排列。对于成绩相同的学生,无论以哪种顺序排列,都要按照原始成绩单中靠前的学生排列在前的规则处理。这题考察了哪种排序能保证相同元素的相对顺序不发生变化这题一定要使用稳定排序,稳定排序的定义就是对于相同元素,它们的相对顺序不能发生变化原创 2022-04-28 09:06:58 · 1416 阅读 · 0 评论