自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AFLNet定制协议

根据AFLNET分析如何扩展协议

2023-01-02 23:50:04 779

原创 DDS学习之路(1)

DDS学习之路

2022-12-07 15:54:54 600

原创 CARLA编译问题 总结

carla编译问题

2022-09-19 15:02:40 453

原创 linux操作系统分析学习总结

linux操作系统分析学习总结

2022-07-02 20:05:27 518

原创 linux操作系统分析实验2

linux实验2

2022-07-01 10:55:13 238

原创 linux操作系统分析实验1:基于mykernel2.0编写一个操作系统内核

mykernel实验

2022-07-01 10:07:13 378

原创 网络安全:ARP和IP协议

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、ARP1.ARP功能2.ARP数据包格式二、IP协议1.IP数据报2.针对IP分片的攻击思路3.IP数据包过滤器4.针对IP数据包过滤器的攻击总结前言本文根据网络分层,对ARP和IP协议进行安全分析。一、ARPARP是数据链路层的协议,执行32位IP地址和48位MAC地址的转换。1.ARP功能从数据包的角度,可以分为以下步骤:主机 A 希望与主机B通信,但是只知道主机B的IP地址。主机A广播主机B的I.

2022-03-25 19:52:41 9673

原创 1141排序+unorder_map+vector

题意输入n个学生的信息,求学校排名思路跟1153差不多,结构体+vector+unordered_map但是这次创建了两个对应的unordered_map——cnt和sum,学校数据都整理好了之后,rank也需要专门分析,分数相同的排名相同,=前面的排名,之后不相等的=i+1;AC代码:#include<iostream>#include<vector>#include<map>#include<unordered_map>#includ

2020-08-21 07:55:36 113

原创 1145哈希+二次探测法

Quadratic probing (二次探测法)题意:哈希+二次探测法+平均查找时间思路平方探测法原理AC代码:#include<iostream>#include<algorithm>#include<vector>using namespace std;bool isPrime(int n){ if(n==0||n==1) return false; for(int i=2;i*i<n;i++){ //这边易错,容易从0开始,就会出现

2020-08-17 09:01:49 353

原创 1133分割链表

题意:begin,n,k把链表分三类:<0;>=0&&<k;>=k;这三类按照排列的顺序输出思路:一种分类的模板+vector(压入的顺序即排列的顺序)AC代码:#include<iostream>#include<vector>using namespace std;struct Node{ int address,data,next;}node[100010];int main(){ int begin,n,k,

2020-08-16 08:23:34 113

原创 1097利用1074的思路

分两个结果链表,ans1[maxn],ans2[maxn]AC代码:#include<iostream>#include<algorithm>using namespace std;const int maxn=100010;int main(){ int hash[maxn]={0}; int n,begin; cin >> begin >> n; int data[maxn],next[maxn],list[maxn],ans1[max

2020-08-15 21:54:00 114

原创 1144 消失的正数

本来用的vector,结果最后答案有问题,就看了一下柳神的代码,柳神使用的是map,我发现map对这种对应关系有奇效。AC代码:#include<iostream>#include<map>using namespace std;int main(){ int n,d; cin >>n; int num=0; map<int,int> m; for(int i=0;i<n;i++){ cin >> d; m[d]+

2020-08-15 21:04:58 87

原创 1074 链表翻转(柳神代码思路)yyds

题意:n,k,翻转链表思路采用data[maxn],next[maxn]和list[maxn],ans[maxn]来记录链表其他的都挺简单的,就是翻转的规律难找:ans[i]=list[i/k*k+k-1-i%k];AC代码:#include<iostream>#include<algorithm>using namespace std;const int maxn=100010;int main(){ int n,k,p,sum=0; int data[m

2020-08-15 20:33:56 283

原创 1052链表排序

题意链表排序思路:模板题AC代码:#include<iostream>#include<algorithm>using namespace std;const int maxn=100010;struct Node{ int address,key,next; bool flag;}node[maxn];bool cmp(Node a,Node b){ if(a.flag==false||b.flag==false){ return a.flag&gt

2020-08-15 18:01:14 89

原创 1132 string字符串+数学问题

题意:Z%(A*B)==0思路:普通数学问题AC代码:#include<iostream>using namespace std;int main(){ int n; string s; cin >> n ; for(int i=0;i<n;i++){ long long a,b,c; cin >> s; int k=s.size(); c=stoll(s); a=stoll(s.substr(0,k/2)); b=st

2020-08-15 17:22:14 97

原创 分类刷题:A1136 palindromic number

题意:在10次以内,字符串转换的数字+字符串反转转换的数字之和再转字符串,最后的字符串是否能够达成对称。思路:字符串+stoi()函数+字符串反转+判定代码:#include<iostream>#include<cstring>#include<algorithm>using namespace std;string rev(string s){ reverse(s.begin(),s.end()); return s;}int main(){

2020-08-06 10:19:04 102

原创 PAT第一遍分类刷题

水题逻辑题题目时间点10088/51017(难)8/5

2020-08-05 15:04:45 114

原创 A1017银行窗口排队(没做出来,重要)

搞不清楚的点在于窗口的选择可以把时间转换为int类型的数自,然后排序,需要的数据就有了,但是如何选择窗口没搞明白。借鉴柳神的思路

2020-08-05 15:04:09 144

原创 分类刷题:A1008乘电梯

题目总结:6s上一层,4s下一层,每层停5s。完成后最后不需要返回第0层。AC代码:#include<cstdio>#include<algorithm>#include<cmath>using namespace std;int main(){ int n,ans,a[110]; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%d",&a[i]); } ans=a[0]*6+5

2020-08-05 11:14:33 113

原创 PAT A1076微博转发(图的BFS遍历)

题意:依次输入的是i号关注的人(这点一开始搞错了),然后输入查询id,求不超过转发上限的情况下的转发量思路:1)建图,采用邻接链表会好一点。2)BFS遍历,需要加上一个约束限制(不超过转发限制)AC代码:#include<cstdio>#include<vector>#include<queue>#include<cstring>using namespace std;const int N=1100;struct Node{ int

2020-07-16 15:40:55 125

原创 PAT A1034团伙头目

题意:给出N条通话记录,这些通话将他们分为若干组。每个组的总边权为该组内的所有通话的长度之和,每个人的点权设为该人参加的通话长度之和。给定阀值K,超过阀值且大于二人的组被视为犯罪团伙,而组内点权最大的人被视为头目,要求输出团伙个数和每个团伙的头目,以及成员个数。思路:首先是姓名字符串和编号的对应关系:map<string,int>求某点相连的边权之和进行图的遍历,获取每个连通块的头目、成员个数、总边权。如果总边权>K,且人数>2,则记录为一个犯罪团伙代码:...

2020-07-16 06:52:22 158

原创 A1107社交圈(并查集)

题意输入n个人的爱好,爱好相同的在同一个社交圈,跟书上的好朋友一样,如果A、B都喜欢活动1,B、C都喜欢活动2,A和B在同一圈,B和C在同一圈,则A和C也在同一圈。思路:跟书上一样,书上直接给出朋友关系,本题需要先依靠hobby[]来判断是否在同一个集合,还有就是书上是直接用bool数组判断是根节点的个数,本题更进一步,需要求出每个集合中的元素个数。AC代码:#include<cstdio>#include<algorithm>using namespace std;

2020-07-15 14:46:26 245

原创 PAT A1094求出人数最多的一代(BFS+树的遍历)

思路1)构建树2)BFS求出每代人的个数3)循环求最多一代代码#include<cstdio>#include<vector>#include<queue>#include<algorithm>using namespace std;const int maxn=110;struct node{ int layer; vector<int> child;}Node[maxn];int sum[maxn]={0};vo

2020-07-13 15:03:49 119

原创 7.6-7.12一周pat总结

链表:静态链表(pat经常会考的知识点)静态链表有一类通用的解题步骤:1)定义静态链表2)进行初始化3)遍历整条静态链表4)有效结点连续化,并排序5)根据题目要求输出DFS和BFS:DFS就是递归+选择,BFS是stack入栈出栈二叉树和树的遍历:中序+先序/后序/层次 重建二叉树;树的静态写法+DFS和BFS在树层次的应用...

2020-07-12 16:35:12 89

原创 A1079供应链总共售出的价值(树的遍历)

题意:树从上至下是供应商与消费者的关系,最底层(叶节点)是单纯的消费者,除根节点外的非叶结点都是消费者+转售商,求出售出的总价值思路1)重建二叉树,找出根节点2)层次遍历,求出转售的次数3)求出叶节点处的产品个数AC代码:#include<cstdio>#include<cstring>#include<vector>#include<queue>#include<cmath>//自己做出来的思路 using names

2020-07-12 16:11:50 97

原创 PAT A1086先序遍历+中序遍历-》后序遍历

push输入的顺序是先序pop输出的顺序是中序最后的结果应该是后序输出两个子函数:1)先序+中序重建二叉树2)后序输出二叉树//pat a 1086#include<cstdio>#include<algorithm>#include<cstring>#include<stack> using namespace std;const int maxn=100;int pre[maxn],in[maxn],post[maxn];sta

2020-07-10 16:41:23 86

原创 2020.6.30-7.5一周pat总结

最近一周的知识点总结:散列:hash表,直接把输入的数作为数组下标来对这个数的性质进行统计。主要是映射(可用map)递归:分治和递归。全排列和n皇后贪心:对于贪心模拟,对每一次情况求最佳,依次递归循环之后的结果就是最佳的。二分查找:有公式需要记忆two points:x+y=m问题+序列合并+归并排序的递归和非递归实现+快速排序简单数学逻辑题最大公约数+最小公倍数:代码公式分数的四则运算:代码公式,加减乘除,分数的表示和化简素数的判断:特判+埃氏筛法(素数表的获取)质因子分解(因子分解

2020-07-05 16:50:12 91

原创 PAT A1059素因子分解(教学题)

题意求出n所能分解的素因子。思路这个应该是套路题,就是打印素数表,然后利用fac数组,枚举1~sqrt(n)范围内的所有素因子p,判断p是否为n的因子。还要注意如果在枚举完之后,n仍然>1,那么必定有一个大于sqrt(n)的素因子(很有可能就是n本身),这部分也需要处理。#include<cstdio>#include<cmath>using namespace std;const int maxn=100010;struct factor{ int x,cnt;

2020-07-03 15:51:49 169

原创 PAT A1015进制翻转之后的数是否还是素数

题意给出一个数N,和进制D,确认N和经过进制D翻转的数是否都为素数。思路1)先写出isPrime()函数,来确实数字是否为素数2)再利用进制转换翻转,求出翻转后的数3)读出时,如果只读入一个负数,则结束程序。利用while(scanf("%d",&n)!=EOF)来解决。代码#include<cstdio>#include<cmath>using namespace std;bool isPrime(int n){ //判断n是否为素数 if(n&

2020-07-03 15:04:54 114

原创 PAT A1049计算1的个数

题意输入N,从1~N求有几个1。简单思路枚举,先用子函数求出每一个数中出现1的次数,然后在主函数中循环从1-N。#include<iostream>#include<algorithm>using namespace std;int get_one(int n){ int a,sum=0; while(n){ a=n%10; //循环每一位 if(a==1) sum++; n=n/10; } return sum;} int main(){

2020-07-02 07:23:26 121

原创 PAT B1003我要通过

这个题目太具有迷惑性了。重点是规律。1.整个字符串里面只能有P、A、T三个字符2.像PAT、APATA、AAPATAA……这种都可以3.可推如果是PAT,则ac都为0,那么PAAT可以,PAAAAT可以,PAAAAAAA……AT都可以如果是APATA,则APAATAA,APAAATAAA,APAAAATAAAA可以如果是AAPATAA,那么AAPAATAAAA,AAPAAATAAAAAA都可以总结规律:只能有一个P和T,中间和末尾可以随便插入;开头的A的个数*中间A的个数=结尾的A的个数。

2020-07-01 16:21:42 100

原创 PAT A1029找中间数

把两个数组合在一起,求其中间数。直接合并,然后求中间数就好了。坑点:分奇偶偶数的话,要用index/2-1;奇数的话,直接index/2;代码:#include<iostream>#include<algorithm>using namespace std;int S1[1000010],S2[1000010];int R[1000010];int main(){ int n,m; scanf("%d",&n); for(int i=0;i<

2020-06-29 22:31:37 95

原创 PAT B1035插入排序与归并排序

给出原始数组和中间数组,求是哪种排序方法,并得出下一次迭代的数组。思路:先判断是不是快速排序,如果不是就是归并排序。每次排序,先判断是不是目标数组,然后再排序,如果是,之后排序得出的数组就是下一次迭代的数组。忘记插入排序的模板咋写的了,查了一下天勤。void InsertSort(int R[],int n){ inti,j; int temp; for(int i=1;i<n;i++){ temp=R[i]; j=i-1; while(j>=0 &

2020-06-29 17:45:44 106

原创 PAT A 1010

思路:将确定进制的数放在N1,未确定进制的数放在N2。(利用strcpy()函数)将N1转换为十进制,然后二分N2的进制,将N2从假设的进制转换为十进制。如果大于N1的十进制,则假设的进制过大,应该往左子区间继续二分;如果小于,则假设的进制过小,继续往右子区间二分。tips:大概需要三个子函数:1)把数转换为十进制;2)将N2的十进制与t进行比较;3)二分法...

2020-06-27 16:17:02 66

原创 PAT A 1037(魔法杯)(贪心问题)(思路有了一半,但是没做出来)

题意:两个集合中各自选取一个数,相乘,最后得出最大的数值。思路:正的和正的乘,负的和负的乘,按顺序就可以了,最大的正数X最大的正数,最小的负数X最小的负数。中间思考过程:排序之后,当C[i]和P[i]都是正数时,直接相乘。但是当中间有一正一负的时候就蒙了。查看书:从小到大先排序,然后负数先相乘,之后如果没有全为负的话,从最后开始相乘,中间的一正一负不需要考虑。代码:#include<cstdio>#include<algorithm>using namespac

2020-06-24 15:57:06 153

原创 PAT A1033加油站问题(较难的贪心算法)

题意:已知起点到终点的距离为D,油箱的最大油量为Cmax

2020-06-23 22:50:38 766

原创 PAT B 1033旧键盘打字

普通坏键(除’+’):根据给出的大写字母直接对照should字符串的大小写字母,通过toupper()把字母全部转化为大写,进行对照删除。特殊坏键(’+’):有特殊坏键之后,需要用tolower()把should字符串中的字母全部转换为小写字母。#include<iostream>#include<cstring>#include<map>using namespace std;int main(){ string bad,should; getline(

2020-06-19 18:18:11 83

原创 散列

散列——哈希表散列函数:恒等变换、除留余数、平方取中法解决冲突:线性探查法:往后推——容易导致扎推平方探查法链地址法(拉链法):建立一条单链表,把key值相同的放在同一个链表里面。...

2020-06-19 17:18:11 81

原创 PAT A 1012 The best Rank

题目大意输入:N,M——N是考生总人数,M是需要check成绩的人数依次输入id,C,M,E成绩再输入需要check成绩的人的id输出:需要check成绩的人的最高排名,及其最高排名的科目(按A>C>M>E)的优先级输出。一开始的大致思路构建结构体,包含id,A,C,M,E的成绩和排名。依次比较成绩,然后得出排名再根据个人排名得出最好的名次和科目。根据输入的需要check成绩的人的id,对比保存的信息,查看是否属于保存信息的考生。如果是,输出名次+科目如果不是,输

2020-06-17 17:16:06 90

原创 B1015 德才论

PAT B1015 德才论一开始的思路:构建结构体->构建cmp函数->直接读入信息,求出满足最低限度的考生数->直接对前m个满足条件的考生排序。错误:发现题目要求有5类分类,不能混。必须按照德才兼备->德分过线,才分不足(德胜才)->德分才分均不过线,但是德分比才高->虽然过了最低线L,但是德分没有才分高(最普遍)->两类分均不过线在每类分类中,先按总分排序,再按德分排序,最后按照id排序。整理之后的思路1.构建结构体,包含id,德分,才分,总分,

2020-06-15 21:34:01 160

空空如也

空空如也

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

TA关注的人

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