自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 收藏
  • 关注

原创 RT-Thread 内核实现的一点简单记录(一)

//-------------------------------------------------------------闲来无事看了RT-Thread内核实现的一些源码和讲解,把所理解的部分记录在此,因为这玩意儿以后不一定用得着,但是过几天一定是忘得毛干爪净,若之后发现不对的地方,再回来改正//-------------------------------------------------------------作为内核,最基本的工作是负责多线程的调度。所以要实现线程、线程们的就绪列表、切换线

2021-01-13 17:34:38 537

原创 MySQL实现的一点总结(六)

mysql

2022-08-17 18:13:07 363 1

原创 MySQL实现的一点总结(五)

mysql

2022-08-17 00:40:11 210

原创 MySQL实现的一点总结(四)

mysql

2022-08-17 00:38:30 343

原创 MySQL实现的一点总结(三)

mysql

2022-08-17 00:36:12 104

原创 MySQL实现的一点总结(二)

mysql

2022-08-17 00:33:18 236

原创 MySQL实现的一点总结(一)

mysql

2022-08-17 00:29:07 215

原创 关于LWIP的一点记录(四)

LWIP

2022-08-06 23:40:07 1015

原创 关于LWIP的一点记录(三)

LWIP

2022-08-06 23:38:11 435

原创 关于LWIP的一点记录(二)

LWIP

2022-08-06 23:34:02 581

原创 关于LWIP的一点记录(一)

LWIP

2022-08-06 23:29:47 405

原创 RT-Thread 应用方面的一点总结(二)

//-------------------------下面是应用方面的一些总结:如创建线程和启动,消息队列、信号量、互斥量、事件、软件定时器、邮箱的实现和应用//---------------------------1.创建线程和启动根据之前的介绍,这里要做的就是定义线程控制块、线程栈以及线程函数,然后扔到rt_thread_init里面初始化一下(初始化了控制块和栈帧内的数据,栈的sp返回给控制块),然后调用rt_thread_startup把线程挂到就绪列表(即优先级链表数组)并开启调度;以上是

2021-05-28 15:05:14 410 1

原创 win10升级显卡驱动导致(蓝屏重启 & 检测不到图形硬件 & GCC无法编译生成可执行文件)

说是导致可能有点严重了,maybe也不能怪人家驱动。——事情开始于某天手贱,从nvidia官网下了我这个小破卡的最新驱动,人家还首先推荐我备份一下之前的驱动,我心想这有啥好备份的,多麻烦。然后升级完之后就进入了喜闻乐见的笑脸蓝屏+无限重启。进不了系统倒还是第一次遇到,搜了一下需要在开机时狂按F8进入win10的安全模式(我这里是ubuntu引导的win10,所以是在选择了系统之后的瞬间按F8),进去之后的界面跟网上的不一样,反正就是选择解决疑难问题之类的,找到一个高级选项,里面有一堆关于重启的选项,选择.

2020-07-30 00:16:57 1007 1

原创 2020.7.25 PAT线上考试后记

又是被钉在耻辱柱上的一天,窗外依旧是淅淅沥沥和仿佛没有尽头的雨幕,我再次站在了失败过后的起点上手边是同自己一起败下阵来的草稿纸,浏览器上还站着那一排有关考试和刷题的标签页,博客的这个界面也很熟悉,只是这次没有往上粘代码失败的时候总会问自己,我过去的这段时间足够努力了吗?如果能更加努力一点,结局又会是怎样?那些站在前排拿着满分的人比我更努力吗,或者差距在哪里虽然莫名的乐观和厚脸皮一直支持我走到这里,但这几年的每次考试的状态都很差确是事实。我只好不停的告诉自己,哥们儿,你做题太少了,哥们儿,你功夫还没到.

2020-07-25 19:07:44 1283 9

原创 PAT A1099 Build A Binary Search Tree ——木落雁南度,北风江上寒

PAT A1099 Build A Binary Search Tree给了树形和节点值确定一棵BST,输出层序。层序如果不想bfs的话,可以用二维数组收集每层的节点值,保证收集的时候都是先访问左边再访问右边所以可以放在一个dfs中解决:节点值排序变成中序序列,使用题目所给结构中序遍历(dfs),同时传个层数lv下去,则过程中访问到的节点对应中序序列的顺序,把对应的节点值放到level数组相应的层中即可#include<iostream>#include<vector>

2020-07-23 15:15:56 116

原创 PAT A1088 Rational Arithmetic ——潮平两岸阔,风正一帆悬

PAT A1088 Rational Arithmetic今天模拟居然放了这道题。。。基本功?之前写这个恶心了,这次放到最后做的,也想起了柳婼小姐姐的写法,所以还算顺利目前改过long long之后,还有最后一个测试点没过,实在想不出是什么情况,我这里除了main前面,真的一滴long long 都没有了,希望有同学看到能指点一下#include<iostream>using namespace std;long long gcd(long long a,long long b

2020-07-22 20:00:04 109

原创 PAT A1147 Heaps ——春风十里扬州路,卷上珠帘总不如

PAT A1147 Heaps和1155是一样的,这道题先做的,当时没有考虑把遍历和判断放到一起,不过像这种判断 if((lvodr[j] < lvodr[j * 2] && (j * 2 + 1 > N || lvodr[j] < lvodr[j * 2 + 1])) != min_flag)还是挺好玩的,#include<iostream>#include<vector>using namespace std;int M,N;

2020-07-19 16:52:37 139

原创 PAT A1149 Dangerous Goods Packaging ——闲云潭影日悠悠,物换星移几度秋

PAT A1149 Dangerous Goods Packaging和单身狗那道题类似,不同的是,这里的狗都可以脚踏N只船(我最开始都没注意到,,)所以首先多对多关系存入二维数组,然后维护一个标记数组,对于每一个输入的点,标记其出现了,并且遍历这个点的邻接点,看有没有之前出现过的,if有,则爆炸#include<iostream>#include<vector>using namespace std;vector<vector<int> &gt

2020-07-19 16:00:29 148

原创 PAT A1154 Vertex Coloring ——多少楼台烟雨中

PAT A1154 Vertex Coloring还以为是地图涂色,吓坏了,实际上只是检验邻接点有没有相同的颜色,然后数一下颜色个数颜色个数用set来数,输入完图和每个顶点的color之后,遍历每个顶点的邻接点,看两个点的颜色是否相同,over~#include<iostream>#include<vector>#include<set>using namespace std;vector<vector<int> > vv;

2020-07-19 15:27:04 85

原创 PAT A1155 Heap Paths ——三更灯火五更鸡?

PAT A1155 Heap Paths判断大小堆or not,并输出顶点到叶子的所有路径,右边的优先(dfs先递归右子树)层序是堆的好搭档,为方便计算,下标从1开始。输入后比较前两个元素(即顶点与其子的大小),定下堆的整体感情基调。因为要输出路径,这里选择了dfs,对于每个顶点root,右孩子为root * 2 + 1,左孩子为root * 2。if存在右孩子或者,则比较大小,判断与整体的基调是否相符,并向下递归;if没有孩子,即到达了叶子,则可以输出路径感情出现变化则不是堆#include&

2020-07-19 14:49:41 127

原创 PAT A1143 Lowest Common Ancestor ——沉舟侧畔千帆过,病树前头万木春

PAT A1143 Lowest Common Ancestor第一次遇到LCA,想的比较乱,感觉有点并查集的意思,又好像不行。开始的想法是用BST的性质和前序建树,建树过程中做一个father数组,然后再dfs做一个level数组,之后就可以根据两个数所处的层数进行处理:下层的顺着father数组往上走,直到俩个层数一样,如果此时两个下标相等,说明之前上层那个就是公共祖先;如果不相等,两人同时向上走,直到下标相等,此时就找到了LCA由于受到BST的诱惑,查找一个数的位置(是否存在)时,甚至还写了二分

2020-07-19 14:21:34 127

原创 PAT A1067 Sort with Swap(0, i) ——天街小雨润如酥,草色遥看近却无

PAT A1067 Sort with Swap(0, i)本题使用了姥姥教的方法,通过交换过程可以发现他们形成了一个闭环,大家手拉手,每个人一步迈到自己应该去的位置(当然这中间有一些single dog是岿然不动的)。but一个序列中可能会有多个闭环。num个人组成的环需要num-1步归位,又由于只能用0交换,没有0的环需要先把0换进去消耗1步,然后组成num+1个人需要num步归位,共需要num+1步。所以问题变成统计序列中存在的闭环数,所有在环中的人数(N-dog),然后分成0在不在环中两种情

2020-07-19 01:27:45 163

原创 PAT A1066 Root of AVL Tree ——春水碧于天,画船听雨眠

PAT A1066 Root of AVL TreeAVL这东西记一次忘一次,每次看就像披着初恋外衣的旧情人(or reverse)以下应该是较为标准的模板方法,只是好久没有用过指针了,所以写了个静态的版本,有些地方有点别扭#include<iostream>#include<vector>using namespace std;struct Node{ int data,left,right,height; Node(){ lef

2020-07-19 01:04:57 123

原创 PAT A1135 Is It A Red-Black Tree ——溪云初起日沉阁,山雨欲来风满楼

PAT A1135 Is It A Red-Black Tree通过此题才了解了红黑树,之前由于这个名字太唬人了一直没敢看——原来这货的平衡性比AVL要弱,目的仿佛是为了减少旋转的开销?以比较小的代价实现较高查找效率。(ps:然而又旋转又变色更吓人,业原火?)本次的任务是检查三个性质:根节点为黑,直接看;路径上不能有连续的两个红,可以在建树的参数中传个color,上下一比较就知道了;任一节点到其叶节点的所有路径中,黑的数量要相等(因为红不能连续,而黑要数量相等,所以可以保证长路径不会大于短路径的2倍)

2020-07-19 00:48:01 193

原创 PAT A1119 Pre- and Post-order Traversals ——小楼一夜听春雨,深巷明朝卖杏花

1119 Pre- and Post-order Traversals到此为止终于把甲级上的这155道都摸了一遍,前后花了好长好长时间——我也不想这么慢,同样过这一生,比别人少做好多事。。。先序是根左右,后序是左右根,所以当一个节点只有左子树或只有右子树的时候,两人都不清楚到底是左子树还是右子树——so不能唯一确定本题的想法是走跟之前正常建树一样的流程:一个序列提供根节点,另一个序列定位,然后划分左右子树。不同的是这里要提供的根节点是当前序列【左子树的根节点】(if没有左子树,那个位置就是右子树的根

2020-07-18 23:50:47 133

原创 PAT A1134 Vertex Cover ——悲欢离合总无情,一任阶前、点滴到天明

PAT A1134 Vertex Cover判断所给集合中的点有没有cover到所有的边。在存储图的二维数组中,每个一维数组可以看作与某个顶点相关的所有边,所以当一个顶点出现时,就表示能cover到她的一维数组中的所有边so二维数组存储输入的图(边),再搞一个顶点的hash数组,之后开始判断,对于每个输入的集合,在hash数组中标记其中的点——每标记一个点就相当于划掉了二维数组中此顶点对应的一维数组,标记完看一下那些没被标记的顶点,遍历其一维数组,看与之相邻的顶点是否被标记了,如果没有,就发现了一条没

2020-07-14 07:52:56 138

原创 PAT A1127 ZigZagging on a Tree ——多情只有春庭月,犹为离人照落花

PAT A1127 ZigZagging on a Tree#include<iostream>#include<vector>using namespace std;struct Node{ int data; int left = -1,right = -1;};vector<Node> vn;vector<int> vin,vpost;int build(int inL,int inR,int postL,int p

2020-07-13 22:58:27 100

原创 PAT A1110 Complete Binary Tree ——雨打梨花深闭门

PAT A1110 Complete Binary Tree思路不好,平添烦恼判断是不是完全二叉树,一开始想的是这种树前n-1层是满的,最后一层可能有空位,所以遍历一下记录每层的数量,前几层根据数量判断,最后一层看空位是不是都在后面没考虑细节就开搞了,选用了简单的dfs,判断最后一层时才发现需要定位到最后一个父节点,此时当事人是非常后悔的,要么改成bfs,要么原地想办法补救,后来选择在dfs中收集每层的元素,当根据num得到最后一个父节点的位置后,减去前几层的数量,则可以定位最后一个父节点在所在层数

2020-07-13 18:16:44 100

原创 PAT A1080 Graduate Admission ——松下茅亭五月凉,汀沙云树晚苍苍

PAT A1080 Graduate Admission根据分数进行排名,再根据志愿学校依次录取,如果有与学校录取的最后一名排名相同且志愿相同的学生,都要一并录取,保证公平,即使已经没有名额(还好没说保护一志愿)那么顺着题意将输入放入学生数组,另搞了一个rank数组保存学生ID,之后根据学生分数排序rank数组(多弄了一个rank是因为写到录取的时候,判断如果没有名额了,就去看看被录取的最后一名跟我是不是一个水平,如果是的话,他能上那我也能上。而录取数组里存的是学生的原始ID,如果这时候学生数组被排序

2020-07-13 12:52:50 167

原创 PAT A1031 Hello World for U ——谷鸟吟晴日,江猿啸晚风

PAT A1031 Hello World for U首先根据题意模拟出字符串长度和n1,n2的关系(n2尽可能大,但不得大于n1),得到n1,n2后,可以仿照螺旋矩阵的填充方法将字符填入n1行n2列的二维数组(空位初始空格)#include<iostream>#include<string>#include<vector>using namespace std;vector<vector<char> > vv;int ma

2020-07-12 13:42:22 81

原创 PAT A1122 Hamiltonian Cycle ——春至花如锦,夏近叶成帷

PAT A1122 Hamiltonian Cycle题目要求的这种cycle是一个经过了所有顶点的简单环路,应该可以理解为序列应包含N+1个元素,首尾元素相同,其余的元素只出现一次,且整条路线是能走通的手抽用了vector作visited数组,每次判断一个序列都需要初始化,用以前的fill方式报编译错误,用resize好像跑到了奇怪的地方,无奈只好用for循环初始化。。。原因尚未研究#include<iostream>#include<vector>using na

2020-07-12 12:38:22 111

原创 PAT A1118 Birds in Forest ——云收雨过波添,楼高水冷瓜甜

PAT A1118 Birds in Forest较为友好的并查集,每个输入行先看成一棵树,本行出现的鸟用hash数组标记到这棵树上,如果hash[鸟]之前被标记过了,说明当前的树和标记的那颗是同一棵树,把两个union一下。最后数树的时候看有几个根节点(没有爸爸的)即可因为还要求判断两只鸟是不是一棵树上的,需要用hash[鸟]去findfather,所以需要压缩路径否则会超时——当然是超时了才去压缩的咯#include<iostream>#include<vector>

2020-07-12 11:00:32 133

原创 PAT A1116 Come on! Let‘s C ——阴阴夏木啭黄鹂

PAT A1116 Come on! Let’s C输入的时候判断其获得的奖项,并存入hash数组hash为零则是混进来的,另用一个checked数组标记获奖者有没有被查询过#include<iostream>#include<vector>#include<string>using namespace std;#define MAXSIZE 10010string awards[] = {"Mystery Award", "Minion", "

2020-07-12 09:58:10 138

原创 PAT A1114 Family Property ——柳庭风静人眠昼

PAT A1114 Family Property跟鸟和树、人和爱好的题目都差不多,但是因为多了统计值,产生了一些麻烦首先每行可以先看成一个家庭,本行出现的所有ID都属于这个家庭,给ID做hash数组,首次遇到一个ID时,标记从属于当前家庭,之后再遇到她就说明应该跟之前标记的那个家庭union到一起。这样输入完成后就得到了最终的father数组(根节点可以直接辨认出,其他节点的father就是对应的根节点,没有中间层)本来想在输入循环中直接把统计搞定(财产累计到根节点,hash数组也标记成最终的根节

2020-07-12 09:47:37 102

原创 PAT A1109 Group Photo ——连雨不知春去,一晴方觉夏深

PAT A1109 Group Photo输入保存身高和名字,排序;计算每排多少人,最后一排的人数注意一下然后从最后一排开始,先找中间位置放人,然后左边一个、右边一个直到放满#include<iostream>#include<vector>#include<string>#include<algorithm>#include<cmath>using namespace std;struct People{ str

2020-07-12 08:45:45 158

原创 PAT A1108 Finding Average ——和羞走,倚门回首,却把青梅嗅

PAT A1108 Finding Average这里的判断只做了一些基本的限制(正负号、每一位是不是数字、小数点的位置和数字的范围),还好测试用例也没有过于丰富的想象需要注意当有效的数字个数为0和1时的特殊输出#include<iostream>#include<string>using namespace std;int main(){ int num; cin >> num; int err_cnt = 0;

2020-07-11 10:23:12 161

原创 PAT A1106 Lowest Price in Supply Chain ——听取蛙声一片

PAT A1106 Lowest Price in Supply Chain跟之前的供应链题目是一样的,这次找的是最低价格,所以可以层序遍历,最先遇到的叶子就是价格最低的(层数最少),因为还要求数相同低价的个数,所以不能直接break,还要耐心把这层看完,计数本层的叶子数。当队列吐完,本层结束,while也结束#include<iostream>#include<vector>#include<cmath>#include<queue>us

2020-07-11 09:47:28 120

原创 PAT A1105 Spiral Matrix ——黄师塔前江水东,春光懒困倚微风

PAT A1105 Spiral Matrix转圈圈太可怕,想不出来怎么搞,参考了一下,选择了自己比较容易理解的方案设置上下左右四个边界值(都是可到达的下标),每次填一圈四条边,然后修改边界值和i j,注意剩下一个数的情况要特殊处理求m n的时候,如果是先找大的,开根号后需要向上取整,否则可能求出了小的那个#include<iostream>#include<vector>#include<algorithm>#include<cmath>

2020-07-11 09:22:01 220

原创 PAT A1104 Sum of Number Segments ——如果清醒是种罪

PAT A1104 Sum of Number Segments想法是将数字一个个加入序列,当第i个数字x加入时,会产生i个新的序列,这些序列由i个x和上一次新产生的序列组成。所以用tmp记录上一次新产生的和,再添上这一次的i个x,形成本次新增的,累加进total看了书上和柳神写的,有点像数PAT那个,对于第i个位置的数,所有包含她的序列的起点有i种,终点有n-i+1种所以每次给输入i(n-i+1),然后累加就行了,更加高级,不容易犯错另外感谢柳婼姐姐的update,否则第三个

2020-07-11 01:11:59 199

原创 PAT A1100 Mars Numbers ——满地黄花留不住 那一个赶考的书生

PAT A1100 Mars Numbers做了字符串和数字的双向映射,然后就是判断是数字还是字符串,然后做相应的转换或切割同样注意cin和getline同时使用时结尾回车的问题以及当数字是13的倍数时,火星文的个位0(tret)不输出,并处理空格和换行#include<iostream>#include<string>#include<unordered_map>using namespace std;string toMars1[] = {"

2020-07-11 00:44:25 152

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除