自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 PAT 甲级 1013 测试点2

【代码】PAT 甲级 1013 测试点2。

2025-03-05 10:58:51 128

原创 PAT 甲级 1098 Insertion or Heap Sort 测试点4

先将第1个元素和第 i 个元素互换(第i个元素是从后往前第一个不是排好的元素,第一个元素一定是在堆中最大的元素,将两个元素互换那1~i-1就是没排好的了。学习了柳神的判断语句,用一个j来代替要换位置的坐标就可以少进行很多重复的判断(一开始括号没对上还找问题找了很久QAQ)当时卡在这里卡了很久......一直以为是堆排序写错了QAQ。然后就是把第一个元素下沉,一开始写了一坨if判断,但是。插入排序就是前面是从小到大排好了,后面位置都不变。如果前后两个元素相等也是可以算排好的(测试点4)

2025-03-04 21:55:01 211

原创 PAT 甲级 1107 并查集

接着就遍历一遍v [ i ] ,如果不是终点(v [ i ]!= i)就把该点的人数 num [ i ] 传递给num [ v[ i ] ]路径压缩这么写比较方便:(因为find ( v [ x ] ) 返回的是v[x]=x 的终点情况,所以每一个路径上的节点都指向这个终点。v [ i ] 指向父节点,num [ i ] 记录喜欢这个hobby的人数(因为一个人算一次所以就加第一次)最后就是把 数组num 排序找到人数不是 0 的节点就可以啦~经典并查集,参加蓝桥杯的都做烂了hhhhh。

2025-03-03 21:20:17 204

原创 PAT 甲级 1099 测试点1,2

所以一开始写的方法只能在n<31的时候使用(改成long long类型就是63),而这次的n=100所以只能前序遍历+bfs了。

2025-03-03 19:03:23 293

原创 PAT 甲级 1053 测试点5

然后找了很久发现是cmp比较函数出了问题,当leafs中所有元素都相同时就会报错,以下是模拟测试点5的输入:(其实只要leafs数组中超过17个相等的元素就会报错了)在写这道题的时候出现了测试点5未通过的情况,以下是初次尝试的代码,写的有些啰嗦,反正主要用了dfs的方法写的。而cmp(a,b)==false 且cmp(b,a)==false 的情况也是可以的;但是 cmp(a,b)==true 且 cmp(b,a)==true 的情况是错误的。的函数只有当cmp(a,a+1)==false 时才停下来。

2025-03-01 12:44:34 1053

原创 PAT 甲级 1090 Highest Price in Supply Chain

构造一个二维数组 v ,v[i] 存放指向 i 的所有元素。构造数组 high 存放每个节点的高度(第几级经销商)构造队列 q 存放每个待读取的节点。

2025-02-23 23:24:54 256

原创 PAT 甲级 1091 Acute Stroke

一开始只是简单的递归(bfs),导致最后两个没法通过(爆栈了)后面看了书上的使用queue存储走过的路径,就不用使用递归了。

2025-02-23 22:35:48 300

原创 PAT 甲级 1052

最后一个测试点没过想了好久,后来才知道是没有特判头节点是-1的情况。

2025-02-19 10:29:26 234

原创 PAT 甲级 1056

题目的排序没读懂,后面看参考书才知道老鼠体重的排序是从1开始排,可以并列第3,所以其他老鼠的体重都是5而不是4......(一开始我以为他1,2,3,5的排序是最后一名要+1......导致只过了一半的测试点QAQ)数组(vector) v[i]代表第i只老鼠的体重,num[i]代表第i只老鼠的排名(1最小,出循环的high最大),因为最后输出的第一名体重最大,所以把num[i]转换成turn[num[i]],转换方式如下:

2025-02-12 22:18:27 180

原创 PAT 甲级 1051(stack)

当有元素大于之前的最大值时,栈顶高度为(now-max+stack),该高度不能超过最大高度m(推一下就知道啦)。这一轮最后栈顶高度增加(now-max-1)个单位(因为该元素出栈会导致结算时高度-1)。当元素小于之前的最大值时,就需要判断元素是否大于上一个出栈的值了:如果大于则不符合出栈规则先进后出了,所以直接flag=0。就可以了(毕竟出了一个元素了嘛)先用stack记录栈的高度,now是现在元素值,max是之前出现最大值,las是上一次出栈的元素值,flag=1记为是成立的栈。

2025-02-11 13:58:48 161

原创 PAT 甲级 1024

【代码】PAT 甲级 1024。

2025-02-10 22:02:23 75

原创 PAT 甲级 1022(map,vector)

使用的是map<string,vector<int>>要注意的是最后两个数组会出错如果直接输出int答案的话,需要在前面补齐0才行!(问题不是出在重复的书本编号上)

2025-02-09 13:55:00 192

原创 PAT 甲级 1071

要注意的是如果只输入一个字母如:a,就不会返回答案(单靠循环内的话),所以在外面再做一次判断(复制下来就好了...p.s.屎山代码hhh)

2025-02-08 16:49:18 150

原创 PAT 甲级 1054

m[temp]++;当m中没有temp的时候自动赋值为0,所以一句话相当于省略了判断的过程QAQ。写完发现和算法笔记几乎一模一样。(注意使用iter时不要写成。

2025-02-08 15:20:19 201

原创 PAT 甲级 1060

感觉写的有限啰嗦了,dot找小数点,first找第一位非0的数字。

2025-02-07 20:32:22 75

原创 PAT 甲级 1047

但是杂一点printf和scanf就没事了(应该不会说我不规范吧QAQ)全用cin>>读入和cout<<输出会超时。

2025-02-06 19:31:05 1666

原创 PAT 甲级 1039

使用for(auto j:m[name]) 遍历的时候大括号内的j不用加*(与另外一种方式区分一下)iter->second指向数值 (在这里就是vector<int>)iter->first指向键值 (在这里就是string)不知道为啥书上(算法笔记)说的是不能用map会超时但是我的没有。注意只能用cin>>s;反正不能用scanf(“%s”,s);

2025-02-06 12:50:27 875

原创 PAT 甲级 1023

读入的字符串一定一定要大于20(应该是最后一个是'\0'吧?

2025-02-05 18:13:03 97

原创 PAT 甲级 1059

和蓝桥杯的质因数分解一摸一样。

2025-02-04 17:06:57 99

原创 PAT 甲级 1096

【代码】PAT 甲级 1096。

2025-02-04 16:47:36 95

原创 PAT 甲级 1015 #python

【代码】PAT 甲级 1015 #python。

2025-02-03 20:46:41 66

原创 PAT 甲级 1081

要注意最后一个测试点会出现浮点错误(就是结果分子出现0的情况......吧?)所以在gcd这加一个a==0的就可以啦(因为分母不可能是0所以就不用管啦)

2025-02-03 12:31:25 100

原创 PAT 乙级 1008

用python超级快诶。

2025-02-02 20:10:41 169

原创 PAT 甲级 1049

和蓝桥杯的《计数问题》很像。

2025-02-02 19:43:06 79

原创 PAT 甲级 1069

输入为6174的时候也要计算一次(参考柳神的)(想破头也不知道为什么错一个QAQ)啊啊啊啊最讨厌这种数位的模拟题了QAQ。

2025-02-01 20:54:14 227

原创 PAT 甲级 1093

只用一次倒序遍历即可,ts记录'T'的个数,每出现一个'A'就能多ts个"AT"组合,每出现一个'P'就能多ats个'PAT'组合。发一下只是因为很喜欢《APT》

2025-01-31 19:08:39 1439

原创 PAT 甲级 1044

因为看柳神也是使用二分,所以写了一个滚动数组的~

2025-01-30 10:48:24 100

空空如也

空空如也

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

TA关注的人

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