随笔分类 - PAT刷题证道
摘要:在菜单栏中:tool(工具)->Edit Options(编辑器环境) 点击General选项卡: 把Color调为黑色。 点击Color选项卡: 讲Select theme设置为Obsidian(倒数第四个) 效果:
阅读全文
摘要:这题在搞清楚思路绕过坑后,还是可以写的出通过sample data的代码的。但是不能AC,让我很气。 最后查清原因:还是对dfs本质理解的不够。 wa代码: vis[s]=1; dfs(s,e,0); 殊不知本题有多个查询数据。如果只调用一遍还可以蒙混过关,但是这样的错误必然导致wa ac代码: v
阅读全文
摘要:给这题安上“队列”的标签其实是存疑的,因为这个模拟过程我都没有用到队列,而是用到vector。也没有用到先进先出的性质…… 其实这题思路不难,难的是题目的理解。难理解的一共两个点: ①第一行是按索引排列的重量,第二行是按索引排列的序号。结合permutaion(组合)这个单词,大概可以猜到陈越姥姥想
阅读全文
摘要:这是一个栈的模拟题,同时“通过出栈序列判断是否合理”这样的考法在考研中经常遇到,也很有可能被命致为考研算法题,这类题的解题方法值得深究。 1、既然是模拟入栈出栈行为,我们就让其不停的入栈,这是一个外循环。 2、如果入栈后超出了栈的规格,就退出循环。 3、在控制非空的条件下,如果栈顶与给定序列相同,那
阅读全文
摘要:如果用vector实现,在运行时遍历寻找最小的两个节点,时间复杂度为O(N^2) 但是我们可以用priority_queue优化,达到O(N logN)的时间复杂度 需要注意的是priority_queue的模板type不能存指针。因为指针是64位整数,存的是数据在内存中的地址。但如果直接存Node
阅读全文
摘要:第一步:定义结构体 这个结构体和常规的二叉树结构体很相似。但是不同的是多了个属性“h”(height)。用这个属性来记录结点的高度,叶子结点为1,空结点为0 。 第二部:编写BST树的插入函数 第三步:编写高度获取与设置的辅助函数 高度获取: 高度设置: 第四步:编写平衡旋转函数 当左右子树的hei
阅读全文
摘要:OJ:https://www.patest.cn/contests/pat-a-practise/1064 (一)23分(3个case未过)代码 建树的规律是我瞎猜的。首先用样例数据分析。 对数据排序后: 0 1 2 3 4 5 6 7 8 9 有10个数据,因为是完全二叉树,底层应该有3个叶子,上
阅读全文
摘要:较为简单。小于大于的都走一遍就可以AC了
阅读全文
摘要:首先我们来理解样例输入: 尺寸:3行4列5片 阈值:2 样例中,一共有三块连通区域,分别是红色,蓝色,紫色。因为紫色的元素数小于2,所以不考虑。ans=26 编码过程中出现了很多bug,主要问题出在bfs结构的编写上。编写bfs结构一定要牢记“出队标记,入队标记,入队判断”这三个编写要点,就能保证A
阅读全文
摘要:其实这题我已经写过两遍了,但都是在看过算法笔记的情况下写的。方法不难,只要能想出来。 找到一个项数为k,每项为p次幂,和为n,并且在有多个结果的情况下要求数字之和最大的一个多项式。如果数字之和相等。还要要求下标最大。 因为曾经看过答案,很多处理方法都有印象。这题的思维的确巧妙,如果能好好理解,就能掌
阅读全文
摘要:这题是个细节题。因为读漏了一个条件,导致我一直wa,思考人生。编码的时候状态也不好,是在图书馆编码的,没有用vs这种调试神器差错,导致“变量写错”这样的bug查了很久。
阅读全文
摘要:这题可谓最短路的集大成。map或字符串hash的输入处理、多重标尺、最短路径条数。 但是这都是纸老虎,搞清楚逻辑和概念,所有问题迎刃而解。 代码是在宿舍写的。因为声音比较嘈杂,导致写了个很傻比的bug,调了很久。
阅读全文
摘要:只要心里有斯杰斯特拉,多少重标尺都是浮云。 可以看到,进行多重标尺判断的时候,可以用 这样的骚代码来进行二重标尺的判断。但是如果要记录最短路径条数或者其他骚操作,就不能这么简洁了。 完整代码:
阅读全文
摘要:queue q; //建立队列 q.push(i); //入队 while(!q.empty()){ //非空判断 int sz=q.size(); while(sz-->0){ //当前层 int t=q.front(); //出队 q.pop(); vis[t]...
阅读全文
摘要:方法一: 对于源点s,初始化vis[s]=1,并且在dfs之后vis[s]=1,为下一次调用做准备 。对于dfs递归中的寻找后继的循环体,入栈出栈语句写在循环内。 模板: 这样得到的路径path,是不包含源点的。注意在输出时加上源点。 方法二: 不用标记源点已访问。出入栈与访问标记抹去语句写在循环外
阅读全文
摘要:这题很早之前就遇到过,是pat留给我的第一印象,然而昨天却有点写不出来。今天dfs用了10分钟不到写出来了。dij用了大约15分钟,捉虫花了一点时间。 dfs: 注意剪枝的时候别剪错就行了。 dij: bug出现在多条最短路径的更新问题上。没有写else if 而是写了 if ,导致出错。
阅读全文
摘要:bfs踩了很多坑才写完。注意:出队时不做是否vis判断,但是要加上vis[出队顶点]=1 。入队时进行判断,并且也要 vis[入队顶点]=1
阅读全文

浙公网安备 33010602011771号