- 博客(90)
- 收藏
- 关注
原创 linux git push时报错 gnutls_handshake() failed: The TLS connection was non-properly terminated
今天在git push origin master时迟迟没有反应,然后报错:网上查了一堆,可能是代理设置的问题,也可能是别的问题,但没有看懂。执行如下命令后sudo apt-get update就解决了该问题:
2021-03-28 20:46:16
3837
4
原创 vscode remote 远程开发时提示找不到conda命令 conda: command not found
场景:使用vscode remote 连接Linux远程服务器时,终端无法识别conda命令。使用xshell连接服务器时,可以识别conda命令。原因:vscoder server 加载终端时,没有加载 /etc/profile文件。修改用户目录下的文件 .bashrcvim .bashrc编辑加入source /etc/profile重启vscode,可以识别了。...
2020-09-22 21:44:40
3396
4
原创 2019年秋季PAT甲级考试记录、经验总结
在武汉科技大学黄家湖校区考的,非常偏远,在很荒僻的地方,荒僻到公交都要3元的地方(开玩笑~)。我去的路上大概花了两个小时,12点半到的,武科机房软、硬件条件很好,跟官网的要求一样,绝对能够满足各种常用的较新版本的编译器,我自己学校只有vs2010…去了之后有教室休息,我趴在桌上睡着了,幸好最后一个走的同学叫醒了我,那时候离开考不到五分钟了……很感谢那位素不相识的同学。考试各方面的环境和条件...
2019-09-08 21:49:37
3538
2
原创 浙大 PAT 甲级 1151 LCA in a Binary Tree
思路和题1143一样,只不过寻找时不能再依靠BST的性质来判断左右子树,可以在构建树时将 该节点是父节点的左子树或是右子树这一信息保存在每个节点中。思路一样,但这题卡了很久…因为遗漏了一个细节,回溯时我只考虑了寻找父节点的左子树或右子树,而没有考虑到父节点就可能是我们要寻找的u或v。一直出现段错误,题1143也出现段错误,是因为没有考虑u,v相等且都为根节点的情况。总之,使用指针很容易...
2019-09-07 21:13:37
246
原创 浙大 PAT 甲级 1147 Heaps 堆 后序遍历 完全二叉树
完全二叉树可以用数组很好的表示,这题只用到堆的定义,关于堆的上滤、下滤操作等典型例程可以参照《数据结构与算法分析——C语言描述》系统复习。本题还考察如何根据完全二叉树的层序遍历来还原构建二叉树,以及后序遍历。#include<stdio.h>#include<queue>#include<vector>#include<stdlib.h>...
2019-09-07 16:57:33
173
原创 PAT 甲级 1143 Lowest Common Ancestor
首先根据后序遍历构建BST,在构建BST时,每个节点的父节点也保存为该节点的信息。然后写函数实现BST的查找。准备工作完成后,开始读取输入数据寻找LCA。对于每组数据,先查找它是否存于BST中。如果都存在,那么写一个getLCA函数找到它们的LCA。首先我们用U表示这两个数中的较大一个,V表示这两个数中的较小一个。getLCA函数首先找到U在BST中的位置,因为V小于U,所以在U的左子树中...
2019-09-07 16:05:02
182
原创 浙大 PAT 甲级 1139 First Contact
常规方法把题意翻译成代码即可,时间和空间范围足够,用set容器来加入和查找朋友。如果是后面三个测点没有通过,可能遗漏了一个细节:a和b也可能是朋友,但是c!=b,在遍历a的朋友时需要注意这一点。#include<stdio.h>#include<set>#include<vector>#include<algorithm>#incl...
2019-09-07 11:35:40
249
原创 浙大 PAT 甲级 1135 Is It A Red-Black Tree 红黑树的判断
#include<stdio.h>#include<math.h>#include<Windows.h>#include<stdlib.h>typedef struct Node* Tree;struct Node{ int key; Tree left; Tree right; bool red;};...
2019-09-06 20:59:29
256
原创 浙大 PAT 甲级 1126 Eulerian Path 并查集 欧拉路径 欧拉环路
这题非常简单,题目稍微复杂一些,但是实际上要做的工作很少也很直白。注意,在根据偶数度节点和奇数度节点判断是否为欧拉图之前,一定要用并查集检验一下是否为连通图。相信这题通过率只有0.2多可能就是因为很多小伙伴一开始遗漏了这一点。It has been proven that connected graphs with all vertices of even degree have an Eul...
2019-09-05 21:24:10
174
原创 浙大 PAT 甲级 1125 Chain the Ropes 优先队列 最小堆 queue_priority 贪婪算法
思路很简单:每次找segments中最短的两截拿出来合成一截,然后当做一个新的segment放进去。最后只剩下一个segment时就是最终的longest rope。做法跟霍夫曼编码一模一样。是一道比较简单的贪婪算法,因为绳子每次进行拼接都会缩短一半,所以很显然越长的越放在最后,只用拼接一次,长度也只损耗一半。每次需要拿出最短的两截,很显然需要用到优先队列,即最小最大堆。C++的STL已经...
2019-09-05 20:58:01
277
原创 浙大 PAT 甲级 1123 Is It a Complete AVL Tree AVL树 层序遍历 完全二叉树
这题出的很经典,也很直白,考察三点:AVL树的构造、树的层序遍历、完全二叉树的判断。没想到不看书不上网这题居然被我搓出来了…本来AVL我已经忘得一干二净,但是之前有道题也考察了AVL,所以当时就顺带复习了一下,今天就写的很快很顺利了,果然刷题还是很有帮助的。#include<stdio.h>#include<algorithm>#include<stdl...
2019-09-05 19:54:42
222
原创 浙大 PAT 甲级 1118 Birds in Forest 并查集
#include<stdio.h>#include<vector>using namespace std;int root[10001];int num;int findRoot(int x){ if (root[x] == -1) { return x; } else { int tm...
2019-09-05 15:16:34
228
原创 浙大 PAT 甲级 1117 Eddington Number 规律
找到规律后非常简单。就是里程数大于i英里的天数大于等于i,输出最大的i即可。数组cnt[i]保存每英里的天数,比如6英里有两天,8英里有两天。然后从前加到后,这时数组里保存的就是里程数小于等于i公里的天数。里程数大于N的天数一律视作里程数N+1.然后用cnt[N+1]-cnt[i]得到里程数大于i英里的天数,与i作比较即可。时间复杂度为O(N)。#include<stdio...
2019-09-05 14:50:26
172
原创 [复习记录] 浙大 PAT 甲级 1111 Online Map 带有等长路径选择策略的、用邻接矩阵实现的disktra算法 DFS
#include<stdio.h>#include<vector>#define INF 10000000;using namespace std;int length[500][500];int time[500][500];int dis[500], dispre[500], timepre[500], weight[500];vector<i...
2019-09-05 10:06:55
162
1
原创 [复习记录] 浙大 PAT 甲级 1114 Family Property 典型并查集
#include<stdio.h>#include<vector>#include<algorithm>using namespace std;struct Family{ int id; double averageArea;};vector<Family> families;int root[10000];in...
2019-09-05 10:04:22
129
原创 浙大 PAT 甲级 1108 Finding Average 排错清单 错误原因
如果题中的示例过了,而提交时部分错误,请参照以下排错清单检查:1、 .123 123. 小数点在最开始和最后也是合法数字,测点4包含这一点。2、 输出时单词number的单复数。当合法数字为0个或2个及以上时,number为复数,输出numbers。合法数字为1时,number为单数,输出number. 测点3和4包含这一点。剩下的应该问题不大,如果题中给出的示例过了的话,很大可能...
2019-09-03 21:38:23
487
原创 浙大 PAT 甲级 1107 Social Clusters 并查集
一看到Cluster就应该想到使用并查集。这题的并查集有些变化,以往都是以有向图的形式出题,告知了有向边的信息。这题有向边的信息不够直白,但可以稍做转换。可以假设每一个Cluster中编号最小的hobby为根节点。这样,输入时找到每个人爱好的编号最小的节点,这个节点与其他爱好构成有向边。例如,某个人爱好为2,3,4,7,其中目前7所在的Cluster根节点最小,为1,那么就等于告知了1-&...
2019-09-03 20:38:04
206
原创 浙大 PAT 甲级 1104 Sum of Number Segments [有关乘法顺序的血泪教训]
真是信了邪,下面的代码死活AC不了,最后两个用例一直无法通过。#include<iostream>using namespace std;int main(){ int N; cin >> N; double ans=0.0; double a[100001]; for(int i=0;i<N;i++) { cin >> a[i...
2019-09-03 16:48:56
251
1
原创 浙大 PAT 甲级 1103 Integer Factorization DFS+剪枝
这题的超时弄得我要崩溃了…各种细节处的剪枝,不停剪了很多地方,依然超时。最后用整型数组代替了vector,通过。血泪教训,第二次了,超时的时候把vector换成原生数组会快好几倍。#include<stdio.h>#include<vector>#include<math.h>#include<memory.h>using namesp...
2019-09-03 14:53:31
258
原创 浙大 PAT 甲级 1098 Insertion or Heap Sort 堆排序
知识点:插入排序和堆排序过程的理解、堆排序中下滤(Percolate Down)操作的实现。可以参照《数据结构与算法分析-C语言描述》(机械工业出版社)中优先队列和堆排序两节,进行系统复习。通过代码:#include<stdio.h>#include<algorithm>#define LeftChild(i) (2*(i)+1)using namesp...
2019-09-02 20:46:23
164
原创 浙大 PAT 甲级 1097 Deduplication on a Linked List 删除链表中重复元素
这题和前面很多题重复了,就不再多说了。STL用的好,可以减少很多思维复杂度,虽然代码可能不是很简洁,在机试时节约时间才是最重要的。这题唯一需要注意的时删除的元素可能为0个。另外,判断是使用绝对值判断,输出是输出的时原值。#include<stdio.h>#include<vector>#include<map>#include<set>...
2019-09-02 17:02:33
222
原创 浙大 PAT 甲级 1095 Cars on Campus
一看到这题,不仅让我回想到被Table Tennis等等系列难题支配的恐惧…不过好在有了前面的经验,这题也相对简单,因此一遍AC。下面贴上AC代码#include<stdio.h>#include<vector>#include<map>#include<string>#include<string.h>#inclu...
2019-09-02 15:33:15
281
原创 浙大 PAT 甲级 1094 The Largest Generation 广度优先搜索 BFS
#include<stdio.h>#include<vector>using namespace std;vector<int> relations[100];int bestLayer, bestNum;void BFS(int layer, vector<int> parent){ int num = 0; vec...
2019-09-02 12:43:30
133
原创 浙大 PAT 甲级 1093 Count PAT's
一道简单题,每个A能够组成的PAT个数为它前面的P的个数乘以它后面的T的个数,然后把每个A能组成的PAT个数再加起来,就是总的PAT个数啦。定义一个数组cnt[100001][2],每个位置的0号元素为该位置前面P的个数,每个位置的1号元素为该位置前面T的个数。从前往后遍历一遍字符串可以得到每个位置前面P的个数,从后往前再遍历一遍可以得到每个位置后面A的个数,最后遍历一遍字符串为每个A能组成的PA...
2019-09-02 12:18:09
347
原创 浙大 PAT 甲级 1091 Acute Stroke 广度优先搜索 BFS
这题求一个M*N*L大小的长方体中的连续空间的总和,大小不小于L才算是一个连续空间。读完题目,就形成条件反射需要用BFS来解决。这题的BFS比较经典,不用多说,直接贴上代码~#include<stdio.h>#include<queue>using namespace std;bool mark[1286][128][60];int maze[1286...
2019-09-02 10:20:47
189
原创 浙大 PAT 甲级 1090 Highest Price in Supply Chain 深度优先搜索 DFS
跟前面一道题很像,也是深度优先搜索,不再赘述。但是需要注意初始条件,也就是深搜前的目前最深层数和目前最深层数的人数这两个全局变量的初始条件,很重要,有两个用例考察的是这一点。要仔细考虑:1、如果只有一个人,最高售价(最深层数)、最高售价的人数输出是否正确。2、层数与售价的计算关系是否正确。下面贴上AC代码#include<stdio.h>#include<...
2019-09-01 22:38:31
165
原创 浙大 PAT 甲级 1089 Insert or Merge 插入排序 归并排序 题目错误
首先要说明的是,这题题目出错了,而我以为是我犯的错误,测试了几个小时都没有AC,我觉得我的时间真的白白浪费了。有一个测点是103 1 2 8 7 5 9 4 6 01 2 3 5 7 8 9 4 6 0题目对应输出应该为:Insertion Sort1 2 3 4 5 7 8 9 6 0但是,这题在连续两次的迭代过程中都是1 2 3 5 7 8 9 4 6 0,在5插入完成和9...
2019-09-01 21:26:44
282
原创 浙大 PAT 甲级 1088 Rational Arithmetic 分数运算 long long int to string
分数运算,不难,但输出格式十分复杂,同时包含最大公约数和最小公倍数的考察。有一个小知识点,itoa可以将char* 转换成int ,ltoa可以将char* 转换成long ing,但这题的long long int好像没有对应的方法。可以改成sprintf(char* ans, "%lld", int x);#include<stdio.h>#include<s...
2019-09-01 19:50:52
152
原创 浙大 PAT 甲级 1087 All Roads Lead to Rome 深度优先搜索 DFS
PAT甲级练习题已经出现过无数次类似的题目了,都是:找路径、择优条件。都用深度优先搜索来解决,出现次数多了之后就属于简单题了。#include<stdio.h>#include<vector>#include<map>#include<string>#include<memory.h>using namespace std...
2019-09-01 16:46:43
183
原创 浙大 PAT 甲级 1083 List Grades
虽然这题是来搞笑的,但是也不能掉以轻心,我把NONE写成了None…也导致没有一次通过。#include<stdio.h>#include<stdlib.h>typedef struct Record{ char name[11]; char ID[11]; int grade;}*Recordptr;Recordptr reco...
2019-09-01 10:13:03
138
原创 浙大 PAT 甲级 1082 Read Number in Chinese 字符串截取 string
比较简单的一题,主要是测点不坑,都是正常的规范的数字。格式控制用了一个小trick,所有的单词后都加了一个空格,然后用string ans来保存。输出时只输出ans前 ans.size()-1 个字符即可,这样最后就不会有空格了。下面贴上AC代码#include<stdio.h>#include<string>#include<string.h>...
2019-09-01 09:51:10
142
原创 浙大 PAT 甲级 1081 Rational Sum 分数运算 排错清单 错误原因
20分的题目里相对较难的一道,因为通过条件比较苛刻,需要考虑的细节太多。主要考察最小公约数、最小公倍数,是比较基础的,代码都只有一两行,下面列一下排错清单,如果有某些用例不能通过,可以看看是哪里出现的问题。1、长整型。程序中所有参与实际运算的变量都必须使用long long类型。请检查保存中间结果的变量是否为long long,检查求最小公约数的函数是否返回long long类型。2、...
2019-09-01 09:00:25
275
原创 浙大 PAT 甲级 1080 Graduate Admission 复杂排序
跟1075一样,在30分题里,这种排序是最容易的。没有苛刻的时间空间限制,不需要算法基础,直接将题意逐字逐句翻译成代码即可,常用的就是sort/vector/map/struct等,怎么方便怎么来,多定义些数据结构来简化思维,这种题套路非常固定。不需要动脑筋,只需要耐心细心就可以了。#include<stdio.h>#include<vector>#include...
2019-08-31 21:09:49
190
原创 浙大 PAT 甲级 1079 Total Sales of Supply Chain 最简单的深度优先搜索 DFS
这几乎是PAT甲级练习题中最简单的一道DFS了…无需赘述,贴上代码供参考就好了。#include<stdio.h>#include<vector>#include<map>#include<math.h>using namespace std;vector<int> edge[100000];map<int, i...
2019-08-31 20:28:58
116
原创 浙大 PAT 甲级 1078 Hashing 散列 二次探测法
首先要知道Quadratic probing的中文意思:二次探测法。二次探测法用于解决hash冲突问题,如果不清楚,可以翻阅《数据结构与算法分析 C语言描述》系统地复习一遍,会更有帮助。值得注意的是,二次探测法有可能插入失败,失败判断条件是增量i大于等于散列表的size,这个可以用公式证明。下面是插入的关键函数int insert(int x,int TSize){ i...
2019-08-31 19:12:28
530
原创 浙大 PAT 甲级 1077 Kuchiguse
读题目真是要笑死我了…太不正经了。很简单的20分~将题意翻译成代码即可。#include<iostream>#include<string>using namespace std;int main(){ int N; scanf("%d", &N); getchar(); string base; getlin...
2019-08-31 17:52:15
194
原创 浙大 PAT 甲级 1076 Forwards on Weibo 广度优先搜索 BFS
本题很显然需要用广度优先搜索BFS。有两点需要注意:1、whereM[i](≤100) is the total number of people thatuser[i]follows是follows,而不是be followed。2、存在互相follow的情况,但自己不能转发自己的,因此在一开始就要把帖子原作者标记掉,不参与转发。#include<stdio.h&...
2019-08-31 17:07:00
152
原创 浙大 PAT 甲级 1075 PAT Judge
这类不考察特定算法、只考察基础数据结构的题目某种程度上就是“翻译题”,没有无法下笔的情况,但一般规矩很复杂,想要拿满分很难,需要非常细心,代码也需要逻辑正确,考虑到各个方面。#include<stdio.h>#include<vector>#include<memory.h>#include<map>#include<algori...
2019-08-31 11:54:46
162
原创 浙大 PAT 甲级 1074 Reversing Linked List 链表
本题中,每个节点中的next信息仅在将输入信息按顺序排列时有用,其他地方可以避免任何链表操作。是非常容易的25分~#include<stdio.h>#include<vector>#include<map>using namespace std;struct Node{ int address; int data; in...
2019-08-31 10:04:21
172
原创 浙大 PAT 甲级 1073 Scientific Notation
我太难了…没有用string,而是用的C风格的字符串去写,本来就很麻烦了……然后有一个隐蔽地方有点逻辑错误,看了一晚上没有看出来,要不就是超时要不就是段错误,弄得我都迷茫了…太傻了,看了几个小时之后终于看出了。#include<stdio.h>#include<stdlib.h>#include<memory.h>using namespace ...
2019-08-30 22:45:51
154
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人