自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(348)
  • 问答 (1)
  • 收藏
  • 关注

原创 考研后规划

浙江计算机考研成功,很幸运,这样的话双985,我的简历应该还是比较好看的,未来可期。考研经验贴不想写了,没太大意义。整理一下自身的未来规划:锻炼身体,考研初试到复试这段时间压力太大,身体有点吃不消。现在还是出现咳嗽的老毛病,打算每天锻炼吧,隔天跑步/室内有氧先搞定论文,顺利毕业导师是做虚拟化这一块的,那将来大概率我会从事服务器后端开发,之前我一直有纠结过java和C++的选择关系,java...

2019-03-20 19:47:39 1198 1

原创 内存池详解

文章目录简介内存池和allocator的关系内存池的具体实现内存池数组内存池中的类型allocate和deallocate测试结果最近一直在搞内存池,这一块之前一直没有注意过,最近看书看到这一块,发现挺重要的,琢磨了挺长时间,也在github上找了很多代码,感觉都不太好,最后是看《深入实践C++模板编程》书中的实现,感觉还不错,就自己敲了一下并分析理解了原理,感觉受益匪浅。源码简介什么是内...

2019-03-08 10:56:57 1038

原创 allocator详解

vector和内存池最近看内存池有关的东西,又回顾了一下之前看C++ Primer时自己写的vector,发现只是对基本的Vector的成员函数进行了重写,最重要的地方也就是分配器用的都是默认的,所以内存分配这块之前就没弄清楚。template<class _Ty,class _Alloc = allocator<_Ty> > class vector : pu...

2019-03-05 14:56:14 3530

原创 曲线拟合

曲线拟合git: https://github.com/seasona/CurveFit用C++写曲线拟合,方法有很多种:最小二乘法多项式拟合就是求多项式与目标函数拟合的多项式的系数方程,基本思路如下:https://blog.csdn.net/lsh_2013/article/details/46697625...

2019-02-26 15:37:44 2198

原创 考研面试问题

文章目录TOPN问题new与malloc的区别const和define的区别交换两个变量的值不用第三个变量1~n中找到缺失的数class和struct的区别TOPN问题m个数中取n个最小的数,利用最小堆即可,时间复杂度为O(mlogn)new与malloc的区别new是完成动态内存分配并自动执行构造函数,建立的是一个对象,对于一个类来说,malloc无法在创建的同时自动执行构造函数还有...

2019-02-17 18:24:00 1314

原创 python爬虫扇贝单词库

考研面试需要准备一些计算机相关的英语单词,所以扇贝单词上找了一些词库,但是扇贝的记忆机制不太好,我一般用墨墨,所以想把扇贝的词库用爬虫提取出来再导入墨墨中,顺便学习一下之前很感兴趣的爬虫,搭建python环境废了比较大的功夫,扇贝的词库网页都是静态的也不涉及登录什么的,还是比较简单,主要是用用第三方库就完事了,如果要登录和处理js估计就比较麻烦了,python本身作为脚本语言,跟我之前接触的差别比...

2019-02-16 20:46:30 3184 1

原创 实习日志

考研完到杭州迈睿机器人公司实习了一个月,感觉收获不少,学到了很多工程相关的经验,之前对大型工程没有什么概念,有无从下手的感觉,现在经过一个月的实习,大致对实际的开发流程有了了解。这一个月的实习中,我基本上了解了MRTA的全部内容,并重写了一个利用最小费用最大流原理的算法取代了原本的匈牙利算法,测试小车数大于30辆时可以缩短时间10倍。然后基本了解了MRPP中的路径规划,学会了A*算法,交通管理...

2019-01-31 19:33:51 7207 2

原创 考研学习记录

1/14~2/14数学:复习全书P1~125(共三章),对应分阶习题P1~22 英语:单词复习24节 408:计算机组成原理剩余部分复习(一周时间);操作系统王道P1~203以及对应课本 C++:C++ primer P1~338寒假准备考研第一个月,感觉数学复习起来比较吃力;英语的话之前每天扇贝背的单词没真正记住,现在每天听写记忆效率比较高;408的话OS感觉不算难,比组成原理简单很...

2018-10-24 17:15:38 1137 2

原创 堆排序的两种调整

记录一下堆的两种调整//小根堆的两种调整#include<iostream>#include<algorithm>#include<vector>#include<cstdio>using namespace std;void adjustUp(int a[],int i){//只能排序a[1,n],插入时使用 if(i=...

2018-09-07 10:24:09 850

原创 L2-014 列车调度(队列模拟:set)

题意:两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度?思路:这题如果直接用队列模拟会内存超限并超时,没有必要存储每个队...

2018-09-06 22:04:13 506

原创 L3-015 球队“食物链”(dfs)

题意:某国的足球联赛中有N支参赛球队,编号从1至N。联赛采用主客场双循环赛制,参赛球队两两之间在双方主场各赛一场。联赛战罢,结果已经尘埃落定。此时,联赛主席突发奇想,希望从中找出一条包含所有球队的“食物链”,来说明联赛的精彩程度。“食物链”为一个1至N的排列{ T​1​​ T​2​​ ⋯ T​N​​ },满足:球队T​1​​战胜过球队T​2​​,球队T​2​​战胜过球队T​3​​,⋯,球队...

2018-09-06 18:00:57 403

原创 PAT1085 Perfect Sequence(二分)

题意:从n个数中选择若干个数,要求这些数中的最大值不超过最小值的p倍。要求选出的数的最大个数。思路:这题就是一个二分查找问题,先排序,然后二分查找第一个大于最小值p倍的数的位置。注意a[i]*p可能达到10^18,所有要用long long型。#include<bits/stdc++.h>using namespace std;const int maxn=1e5...

2018-09-05 15:33:03 187

原创 层序中序生成树

已知层序和中序也可以唯一确定一棵树,构建树的思路是遍历层序在中序中寻找优先输出根结点的位置,并递归建树,每次递归层序的范围不改变。#include<bits/stdc++.h>using namespace std;const int maxn=1e3+5;int level[maxn],in[maxn];struct node{ int key; no...

2018-08-30 12:13:35 811

原创 PAT1130 Infix Expression(树的递归)

题意:给出一棵符号树,要求加上括号输出正确的序列思路:这题一开始没想出来,不知道括号该怎么插入,实际上只要根节点和叶子节点不插入括号,其他的按中序正常插入即可。#include<bits/stdc++.h>using namespace std;struct node{ string key; int left,right;}tree[30];...

2018-08-29 18:27:45 210

原创 PAT1105 Spiral Matrix(模拟)

题意:给出一系列数,要求从大到小螺旋式排列成一个矩阵思路:这题看到了一种很好的办法,记录一下,可以先设立一个mapp[m][n]的矩阵并全赋值为-1,这样螺旋时遇到之前插入的值就会停止,这样就可以按行列插入数组。#include<bits/stdc++.h>using namespace std;const int maxn = 10050;int row[ma...

2018-08-27 16:28:17 221

原创 PAT1123 Is It a Complete AVL Tree(AVL树&&完全二叉树)

题意:给出一系列数,要求组成AVL树,最后层序输出,并且判断是否为一个完全二叉树要点:这题就是一个AVL树的插入和判断完全二叉树,之前分别都有出现过,AVL树的建立需要记忆。#include<bits/stdc++.h>using namespace std;int cnt=0,n;bool flag,vis;vector<int> ans;s...

2018-08-25 17:03:55 288

原创 PAT1119 Pre- and Post-order Traversals(先序后序求中序)

题意:给出先序和后序,要求如果能形成唯一的树就输出yes和中序,如果不能就输出no和任意一个中序思路:这题就是递归建树,根据后序中倒数第二个数到先序中寻找对应的位置,如果后序的倒数第二个数和先序的第二个数相同就说明不唯一,此时选择将其作为右子树。我这题写的时候考虑复杂了,想着同时用先序的第二个数和后序的倒数第二个数去拆分树,实际上只要选择其中一个就行,然后递归的时候如果不唯一,只有一个...

2018-08-15 20:21:31 218

原创 PAT1131 Subway Map(DFS&&回溯)

题意:找出一条路线,使得对任何给定的起点和终点,可以找出中途经停站最少的路线;如果经停站一样多,则取需要换乘线路次数最少的路线思路:这题就是用dfs+回溯写,我回溯写错了,找到终点的地方回溯了一次,递归回去又回溯了一次,这样就回溯了两次,看别人代码写了一下,这题还有一个地方要注意的就是这个换乘线路,我一开始是很随意的看该点有几条分支,超过2条说明为节点,但实际上这题求的是换乘的次数,完...

2018-08-08 20:04:46 364

原创 PAT1129 Recommendation System(set&&运算符重载)

题意:根据用户每次点击的东西的编号,输出他在点当前编号之前应该给这个用户推荐的商品的编号,只推荐k个,也就是输出用户曾经点击过的商品编号的最多的前k个,如果恰好两个商品有相同的点击次数,就输出编号较小的那个思路:这题我一开始看就觉得快排肯定要超时,就用选择排序写,结果还是超时,这种每次变化不多并且对时间复杂度要求比较高的就是应该用set这种自排序的容器,重载一下运算符<即可,注意...

2018-08-07 23:07:53 422

原创 PAT1135 Is It A Red-Black Tree(红黑树)

题意:给出一棵平衡二叉搜索树的先序序列,要求判断是否为红黑树思路:这题一开始我没意识到红黑树都是平衡二叉搜索树,知道后就先按照先序和中序建树,然后按照红黑树的定义,用递归判断每个节点的左右黑节点的个数即可#include <bits/stdc++.h>using namespace std;const int maxn=50;int pre[maxn],in[m...

2018-08-03 22:01:52 272

原创 PAT1138 Postorder Traversal(树的遍历)

题意:给定一棵书的先序遍历和后序遍历,然后找出这棵树后序遍历的第一个元素思路:这题的思路很简单,考虑到只要输出第一个元素,所以若有左子树就递归左子树,如果没有左子树,才找右子树。但这题有个点很怪,都是同样的方法我的代码就超时,找了网上别人写的有的能过有的不能过,下面是一个能过的。我看了一下好像PAT是支持#include <bits/stdc++.h>的,下次可以直接用。...

2018-07-31 19:55:24 222

原创 1110 Complete Binary Tree(完全二叉树)

题意:给出一个n表示有n个结点,这n个结点为0~n-1,给出这n个结点的左右孩子,求问这棵树是不是完全二叉树思路:这题就是先建树,找出根结点然后层序遍历,我一开始是把每层的结点数存储下来看是否等于2^i,结果有两个案例没过,看别人的代码有更好的方法,就是记录遍历的个数cnt,如果遇到空结点并且(cnt==n)那就是完全二叉树,如果(cnt!=n)那就不是完全二叉树。注意会存在一开始cn...

2018-07-26 13:06:00 323

原创 1108 Finding Average (20)(字符串)

题意:求一系列输入的平均值,其中有的输入不合法思路:这题本身就判断一下就行,主要是记录一下sscanf和sprintf的用法:sscanf() – 从一个字符串中读进与指定格式相符的数据sprintf() – 字符串格式化命令,主要功能是把格式化的数据写入某个字符串中。注意sscanf()要提取值必须完全与格式匹配,所以abc11.654这种格式是不行的,只能是11.454...

2018-07-23 23:11:48 266 1

原创 PAT1139 First Contact(模拟)

题意:A和B告白,必须通过A的同性朋友和B的同性朋友传达,要求输出所以可能的两个朋友的情况思路:这题有些复杂,我一开始想复杂了,上来就用dfs+回溯做,结果超时,其实只要遍历所有A的朋友和B的朋友,看这两者是否互为朋友即可。不过这题还有很多地方要注意,我还是看别人的代码写的。https://www.liuchuo.net/archives/4210#include<io...

2018-07-22 22:57:17 346

原创 PAT1104 Sum of Number Segments (20)(数学)

题意:给出一个序列的数,要求输出所有连续子集的总和思路:这题就是纯粹的数学题,想不到就gg,题意还不明确,给出的序列指的是已经排好序的。基本思路是统计每个数所出现的次数,以该点的位置i,向左有i-1个排序子集,向右有(n-i)个排序子集,左边不能全不用,所以有i种,右边可以全不用也就是到第i个数为止,所以有(n-i+1)种,因此第i个数出现i*(n-i+1)次。#include&...

2018-07-16 21:59:55 228

原创 PAT1143 Lowest Common Ancestor(BST)

题意:给出一棵二叉搜索树的前序遍历,问结点u和v的共同最低祖先是谁思路:这题我一开始的思路是建树,顺便建立前驱关系,然后就写,写完超时两个案例。正确思路是如果当前结点值在[u,v]之间,就说明该点为最低公共祖先,这个地方没想到,下面是别人的代码,非常简单,都不用建树。#include<iostream>#include<algorithm>#include<vec...

2018-07-14 23:16:36 295

原创 PAT1103 Integer Factorization (30)(DFS:回溯)

题意:给三个正整数N、K、P,将N表示成K个正整数(可以相同,递减排列)的P次方和,如果有多种方案,选择底数n1+…+nk最大的方案,如果还有多种方案,选择底数序列的字典序最大的方案思路:这题看时间和n的大小就知道估计是用dfs做,不过我回溯烂的很,没写出来,下面是参考别人代码写的。注意codeblock中pow返回时会损失精度,pow(5,2)如果用int显示为24,解决方法是+...

2018-07-12 20:33:46 304

原创 PAT1101 Quick Sort (25)(逻辑)

题意:快速排序中,我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。  给定划分后的N个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元?例如给定N = 5, 排列是1、3、2、4、5。则:1的左边没有元素,右边的元素都比它大,所以它可能是主元;尽管3的左边元素都比它小,但是它右边的2它小,所以它不能是主元;尽管2的右边元素都...

2018-07-10 20:53:15 198

原创 PAT1096 Consecutive Factors (20)(逻辑)

题意:一个正整数N的因子中可能存在若干连续的数字。例如630可以分解为3*5*6*7,其中5、6、7就是3个连续的数字。给定任一正整数N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。思路:这题没想出来。基本思路是n最多为12个连续的数相乘,这样就从len=12到1倒序遍历,再从i开始连续乘len个数,如果积等于n就输出,注意最后要输出素数的情况。#include<iostr...

2018-07-05 22:45:56 236

原创 PAT1145 Hashing - Average Search Time(hash—平方探测法)

题意:给定一个序列,用平方探测法解决哈希冲突,然后给出m个数字,如果这个数字不能够被插入就输出”X cannot be inserted.”,然后输出这m个数字的平均查找时间思路:抽空整套做了一下寒假最新的这套题,感觉还行,大概一个半小时能写完,但是这题就卡住了,前面也出现过这种问题,主要问题在于我数据结构里学的平方探测法定义就不一样,PAT里递推公式为Hi=(key+di)%m,其中...

2018-07-04 17:05:21 741

原创 PAT1095 Cars on Campus (30)(模拟)

题意:给出n个车牌号、时间点、进出状态的记录,然后查询k个时间点这时校园内的车辆个数。最后还要输出在校园里面呆的时间最长的车的车牌号,以及呆了多久的时间。如果有多辆车就按照它的字母从小到大输出车牌。配对要求是,如果一个车多次进入未出,取最后一个值;如果一个车多次out未进入,取第一个值。注意:一个车可能出入校园好多次,停车的时间应该取之和。思路:这个模拟题还蛮难的,主要是不符合要求的情况不好处理。...

2018-07-03 11:06:54 224

原创 PAT1093 Count PAT's (25)(逻辑题)

题意:给出一个包含'P','A,'T''三种字符的字符串,问能找到几个PAT子串思路:这题是个逻辑题,想到了就很简单,可惜我没想到。基本思路就是找A,A左边的P个数*A右边的T个数累加即可。#include<algorithm>#include<iostream>#include<cmath>#include<queue>#include&l...

2018-07-01 10:12:20 196

原创 PAT1087 All Roads Lead to Rome (30)(最短路径+dfs+回溯)

题意:有N个城市,M条无向边,从某个给定的起始城市出发,前往名为ROM的城市。每个城市(除了起始城市)都有一个点权(称为幸福值),和边权(每条边所需的花费)。求从起点到ROM所需要的最少花费,并输出其路径。如果路径有多条,给出幸福值最大的那条。如果仍然不唯一,选择路径上的城市平均幸福值最大的那条路径。思路:这种题,如果简单一点,要求没那么多的情况,可以直接在dijkstra中写用dp的...

2018-06-19 10:27:14 271

原创 PAT1086 Tree Traversals Again (25)(树的遍历)

题意:用栈的形式给出一棵树建立的顺序,要求输出后序遍历思路:push的顺序就是先序遍历,pop出的顺序就是中序遍历,所以直接用二叉树先序和中序遍历转后序即可。主要记录一下模板#include<bits/stdc++.h>#define inf 0x3f3f3f3fusing namespace std;const int maxn = 10000;vector...

2018-06-18 10:14:08 159

原创 PAT1081 Rational Sum(gcd)

题意:给出一些分数,要求以分数的形式输出它们的和思路:这题就是分别对分子和分母进行处理,中间有个点过不去因为分母过大超过范围,所以中间处理的时候要求出最大公约数,顺便我辗转相除法也忘了,复习一下。#include<bits/stdc++.h>#define inf 0x3f3f3f3fusing namespace std;const int maxn = 15...

2018-06-13 18:41:42 237

原创 PAT1078 Hashing (25)(hash:二次探测法)

题意:给出散列表长和要插入的元素,将这些元素按照读入的顺序插入散列表中,其中散列函数为h(key) = key % TSize,解决冲突采用只向正向增加的二次方探查法。如果题中给出的TSize不是素数,就取第一个比TSize大的素数作为TSize思路:这题就是考察一个hash中的处理冲突中的平方探测法,一堆坑: 平方探测法属于开放定址法中的一种,数学递推公式为Hi=(H(key...

2018-06-10 10:46:13 427

原创 PAT1068 Find More Coins (30)(DP)

题意:给出n枚钱币,要求买价值为m的物品,要求输出具体所用的钱币,如有多种情况输出字典序最小的情况。思路:这题就是01背包的变种,状态转移方程很好写:dp[i][j]=max(dp[i-1][j],dp[i-1][j-c[i]]+c[i])主要难点在于怎么处理多种情况最后输出,基本思路是一开始将钱币按从大到小排序,在状态转移的过程中用hash[i][j]保存是否选取了当前钱币i,这样最后对dp[n...

2018-05-31 14:41:51 193

原创 PAT1067 Sort with Swap(0,*) (25)(贪心)

题意:给出0~N-1的序列,要求每次只能通过0和其他数交换,最后将所有数排序思路:这题还是比较容易想到的,分成两种情况讨论:0不在0位置,如果0在i位置,那么在i位置的应该是i,所以将i对应的位置与0交换即可0在第0位且还没排好序,选择还没匹配位置的第一个数与0交换这题有两个样例卡时间,所以对第二种情况进行优化,不用每次从0开始遍历,从上一次的位置之前的数已经匹配完成,所以从该位置开始遍历即可。#...

2018-05-29 19:03:42 153

原创 PAT1066 Root of AVL Tree (25)(AVL树)

题意:给出一系列要插入平衡搜索二叉树的数,要求输出最后的根节点思路:没其他办法,完完全全是AVL树的插入节点模拟,这题就不会写,看别人代码写的。#include<iostream>#include<algorithm>using namespace std;struct node { int key; struct node *left, *right;};...

2018-05-29 18:55:46 172

原创 PAT1064 Complete Binary Search Tree (30)(BST)

题意:给出一个完全二叉搜索树的键值序列,要求输出层序输出要点:完全二叉搜索树的根节点是可以唯一确定的,所以一开始排序一下,再用dfs即可。这题我思路是想到了,但是生成根节点的地方写的有点问题,然后要输出层序是可以用dfs中序遍历再加一个数组直接输出的,这里可以学习一下。#include<iostream>#include<string>#include<vecto...

2018-05-27 20:54:46 200

空空如也

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

TA关注的人

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