![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PAT
安之若醇
我要背着那重重的壳呀~一步一步地往上爬~~
展开
-
1148 Werewolf - Simple Version (20 分)
Werewolf20分的题给我看懵了,,,直接翻题解了柳神题解yyds#include <iostream>#include <vector>#include <cmath>using namespace std;int main() { int n; cin >> n; vector<int> v(n+1); for (int i = 1; i <= n; i++) cin >> v原创 2021-09-10 09:37:08 · 62 阅读 · 0 评论 -
PAT_1130 Infix Expression (25 分)这原来只是一个25分的题(测试点四分析)
具体思路就是建好树了以后,如果是符号的话,就一直找左孩子,到孩子为-1的时候把这个孩子赋值成“(”,右边同理这个思路想了也有半个小时,后来膜柳神的25行代码,嘤嘤嘤,原来这只是一个25分的题呀!根本不需要那么长(25的题就是会者不难难者不会的操作了)一开始测试点4一直不对,后来想了一下把“符号””多加了几个,就过了QAQ这是我自己的:#include <string.h>#include<vector>#include<algorithm>#includ.原创 2021-09-05 10:28:59 · 131 阅读 · 0 评论 -
PAT 1108_1111复盘
1108这个题一开始直报运行时错误,后来定位在stoi函数,有可能那个数很大,加了个特判以后好了(测试点二)但是变成了答案错误,,我看其他小伙伴都说这个题测试点2是个count=1要输出number的问题,我寻思我也注意了QAQ真不知道问题了#include <string>#include<vector>#include<algorithm>#include<stdio.h>#include<map>#include<原创 2021-09-01 17:19:37 · 139 阅读 · 0 评论 -
PAT 1104~1107 刷题记录
从某种意义上说,如果考这套题怕是要gg,,,1104有一个点错了,1105也是,1107的话可能压根看不懂题,,,其实真的是,感觉好多时候都看不懂题,,也不知啥时候才能加上样例解释QAQ1104:柳神说,第二个测试点有double精度问题(居然被卡精度了,,,)不过好在这个题我确实也后来没有再耗时间去看它了(对的呀!千万别在一棵树上吊死)#include <string>#include<vector>#include<algorithm>#include原创 2021-08-31 17:22:24 · 74 阅读 · 0 评论 -
1095 Cars on Campus (30 分) 的一个问题
记录一个非常非常幼稚的错误:judge函数:就理解成比较两个时间大小就好了一开始觉得没啥问题啊,为啥就错了呢这个问题debug了一个小时,我觉得我起码一个月应该是忘不了它了原创 2021-08-29 17:19:49 · 71 阅读 · 0 评论 -
PAT_1101 Quick Sort (25 分)
真不容易虽然叫快排,但是跟快排一点关系都没有其实就是看排序以后谁的位置没有变吧然后就这么写了,然后就16分其实给个j样例就明白了:51 10 5 2 8你瞅瞅那个5,位置很正确,但是由于前面有一个10,啊~~~~那其实就是说前面的不能比后面的大(加上这个条件)就好了那其实还算挺简单的数据范围1e9,我为了数组比较好找弄了一下hash存在map里了#include <algorithm>#include <iostream>#include<queue原创 2021-08-27 10:31:13 · 82 阅读 · 0 评论 -
5852. 最小化目标值与所选元素的差 记忆化dfs,关键在于你怎么定义变量
目录解题思路代码解题思路当时是个周赛题,试图利用爆搜解决的。。。。显然不行,然后又听有人说是个背包QAQdl都欺负我(╥╯^╰╥)嘤嘤嘤不过了解了二维数组第一维放行数第二维放和,,,瞬间感觉记忆化搜索又可以了!!!(感谢 @狼牙先生 的题解提示)感觉如果涉及记忆化搜索的话确实,一般二维数组的两维不可能都是行号列好的,一般要有一个可以让你记忆的吧!这个题就是,如果你到了某一行,而且sum是一样的话,那就可以直接return代码class Solution {public: int原创 2021-08-23 11:10:20 · 72 阅读 · 0 评论 -
PAT_1076 Forwards on Weibo (30 分)
目录题面:题目大意今日成就:代码:注意每次bfs都要清空你的visited数组这种问题!!!!!题面:链接题目大意就是说一个人几个followers,然后你跑图跑一下每一层(level)找共有几个人今日成就: 使用dev进行编写代码不得不说。Dev作为一种原始的ide,,,,已经太不舒服了!!!!被clion惯坏了,总觉得嗯,一些比如push_back什么的打前两个字母就好了,结果这波clion整的我,都不知道queue后面是push还是push_back…返祖现象代码:注意每次b原创 2021-08-23 10:37:46 · 51 阅读 · 0 评论 -
1007 Maximum Subsequence Sum (25 分)(含测试点样例,错一个测试点的看过来)
有无投喂?我好饿呜呜好饿好饿我真的好饿哦,刚刚那个是题目链接这个题,啊,一看感觉就是dp现在手头dp问题一定要往学过的那几个上靠~~(我又不太具备自己找规律的能力呜呜呜)~~就是最长不下降,最大公共子序列,背包问题无数种变形那这个题,其实如果给那个顺序加一个hash,是不是就是一个最长不下降问题了?不过这里注意一个测试点(忘记是哪个了)样例中明确说明她喜欢的颜色可能不包含所有的颜色,而题目提供的颜色可能根本没有这个颜色样例如下:63 1 2 34 4 4 4 4 这个时候应该输出零原创 2021-08-16 12:01:33 · 396 阅读 · 0 评论 -
1078 Hashing (25 分)测试点一的坑
讲个笑话:好了好了,这个题其实首先我觉得它不难,也就那个单词不认识二次勘测而且就算是认识,也可能不知道这是个啥意思QAQ二次勘测妙就妙在,你只能把所有的都枚举完才能知道到底是哪个位置(而不是遇见相同的位置就以为循环了)测试点一的问题就是,1既不是质数也不是合数,你这个地方要特判的(看见质数你都不知道想想1这个特殊情况吗?????)然后就没啥了#include<vector>#include<iostream>#include <algorithm>原创 2021-08-12 11:34:21 · 226 阅读 · 0 评论 -
1063 Set Similarity (25 分)
这个题用set啊,可以实现去重不过我想说的一点是,set不能用下标遍历!// for (int i = 0; i < len1; ++i) {// if(st[b].find(st[a][i])!=st[b].end())//// }这个样子不对!!只有vector和string才可以!乖乖用iterator吧!#include<vector>#include<iostream>#include <algorithm>原创 2021-08-11 17:14:36 · 47 阅读 · 0 评论 -
1072 Gas Station (30 分) 二三四测试点没过看过来!!
题目详情先来嚷嚷一波:这个题给的样例有问题!!那个3.3其实应该是3.2!可是。。。咋就这么多测试点没过给大伙秀一波惨案零零散散的正确错误的俺debug了好久啊呜呜呜,会有人感谢我的!!!喔对了,其实如果零零散散正确错误的应该是代码细节有问题,你就得再读读题看看是不是有哪个变量写错了呀or是不是哪个细节处理错了。如果有大小比较的一定要再看看~有没有赋值就赋一半的?之类的。如果是前几个对了后面的全错,请考虑数据范围please!!这个题数据范围是1000+10不过你读入数据的时候也要注意,原创 2021-08-11 15:39:14 · 366 阅读 · 1 评论 -
1018 Public Bike Management (30 分)思路+测试样例 dij+DFS
题目链接这是一个坑特别多而且值得深思的题最短路嘛,一看就是dij,这里用一个数组存一下每一次的prepre定义是vector<int> pre[520]这个题一个很需要注意的地方就是,它一共是N+1个点啊!!!!!void dij(){ d[0]=0; for (int i = 0; i <= N; ++i) { int u=-1,MIN=INF; for (int j = 0; j <= N ; ++j) {原创 2021-08-10 21:55:50 · 195 阅读 · 0 评论 -
1003 Emergency (25 分)
题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805523835109376好奇怪啊,我这个题交了第一遍还是个错的交第二遍就对了#include<vector>#include<iostream>#include <algorithm>#include <cmath>#include<map>#include <queue>#includ原创 2021-08-10 12:32:34 · 49 阅读 · 0 评论 -
PAT A1088 Rational Arithmetic (20 分)分数加减乘除
最近有点心烦各方面的吧,身体上精神上都有觉得很多事不顺心啊,很多事乱七八糟有时候心情不好选了一个最信任的朋友想敞露心扉结果ta告诉你他在忙啊之类轻微抑郁症总是在最孤独的时候爆发,想隐藏自己却又让自己处处受伤。看谁都想躲,被伤到了还要拼命克制慢慢调整吧,相信一切美好都在不远的将来如果实在觉得不舒服,那就找个题,写写题解,跟其他博友一起加油吧!那我们来看看这个题啊,分数加减乘除,说难其实也就是个模拟。需要注意的就是格式问题了。先定义的结构体,注意,我们会在化简的时候对up和down做一些规定哦原创 2021-08-09 17:58:43 · 86 阅读 · 0 评论 -
PAT A1107 Social Clusters (30 分)
嘤嘤嘤并查集模板本来以为还挺简单的结果发现连题都读不懂暗自下定决心:一定要让陈越姥姥提供样例解释好了,我们来读一下题吧其实就是说有相同爱好的两个人就在一个小组嘛难道是个map?但是一看样例,明显不对啊其实后来才发现这个题意思是,如果a与b有共同爱好,c与b也有,那a,b,c就是一个小组的这样子的话让course[h]来记录一下这个小组的代表人物,然后找这个人的father合并就行#include<vector>#include<iostream>#incl原创 2021-08-06 13:35:45 · 50 阅读 · 0 评论 -
PAT A1064 Complete Binary Search Tree (30 分)
嘤嘤嘤题目链接这个题,首先我们知道BST中序是递增的,然后完全二叉树的孩子可以用下标2root 和2root+1来表示,那就有思路啦#include<vector>#include<iostream>#include <algorithm>#include <cmath>#include<map>#include <queue>#include <stack>using namespace std;in.原创 2021-08-04 17:53:25 · 53 阅读 · 0 评论 -
PAT A1043 Is It a Binary Search Tree
题目详情写几个注意点:这边右子树可能含有相同的项然后注意root一开始别忘记等于NULL,还有这里:#include<vector>#include<iostream>#include <algorithm>#include <cmath>#include<map>#include <queue>#include <stack>using namespace std;struct node{原创 2021-08-04 17:13:00 · 53 阅读 · 0 评论 -
pat a1053 Path of Equal Weight (30 分)(含边缘样例)
题目详情QAQ写树写树这个题其实没啥技巧,就是先建树再dfs就好啦~~~不过要提几个注意点(这为clion不能正常使用的我雪上加霜)dfs一定不要漏边界了!!!(不是说不知道weight为0的时候输出,而是你疯狂忘记weight<0的时候直接返回)以及不要忘了判断是不是叶子节点哈-它要求按照一定顺序输出的时候,你可以搜索的时候就按照这个顺序搜-注意啊,这里的child可是int形的,所以你cmp一定要是两个Int为参数啊否则报错会给你跳到这里:怎么还是排序的锅快测测这个原创 2021-08-03 12:14:07 · 114 阅读 · 1 评论 -
PAT A1020
题目详情#include<vector>#include<iostream>#include <algorithm>#include <cmath>#include<map>#include <queue>using namespace std;struct node{ int data; node* lchild; node* rchild;};int pre[50],in[50],pos原创 2021-08-02 17:11:17 · 54 阅读 · 0 评论 -
PAT A1052(含边缘测试样例)
题目详情这个题的基本思路还是数组模拟链表~整体思路确实不难,但是!边缘数据卡得有点,,,,没办法,看了一眼别人的attention,发现:可能有无效数据~~明白了,我原来的程序是把无效数据一起算上了。题目也没有说有无效数据啊(自己找台阶,先下去再说)不过我们要这么想,如果都有效的话,,,那输出一遍个数是干嘛呀?ok,那我们来看边缘处理叭~首先你需要从头遍历一遍,找到有效数量&把有效的点标记出来那排序的时候怎么把标记为无效的去掉呢?直接放后面啊,把标记的那位也作为一个排序的规则原创 2021-07-30 13:54:04 · 146 阅读 · 0 评论 -
PAT A1032
题目详情这个题N比较小,可以用静态链表。mark一下自己的蠢事:数组开了10010结果其实需要到99999(这种固定的五位数,害,下次要看题了直接100010)注意,只有数量较小的时候(1e5左右)你才考虑静态数组!!!!就比如某kerin昨晚一个数组开到1e8,当时觉得不对劲后来才想起来是MLE了。(kerin说因为题目不清晰,小姐姐!!!1e8用静态数组怪题目不清晰咯????)还有一点就是如果数位比较少,你把这种固定数位的当做是int来看的话,千万别忘保留数位哈!!!!就比如00002 你原创 2021-07-30 11:25:21 · 60 阅读 · 0 评论 -
PAT A1056
这题看着咋就这么费解呢,,,而且没有样例解释啊呜呜呜就是说啊,有一堆老鼠,要按照分组比较谁沉。每组NG只,然后一共就是NP只,如果最后一组不够就不够去吧,还是一样比。每组的话最沉的那个晋级,剩下的名次一样。再把晋级的老鼠一起比,还是一样的比法。(有没有感觉像是递归)刚刚说了,有点像是递归。but,wait。其实dfs和bfs也会给我们一些启发。能递归还可以用queue来解决。main ideaYou can calculate the number of group and the rank原创 2021-07-29 11:42:42 · 73 阅读 · 0 评论 -
PAT a1051
简单题给搞哭了呜呜,果然还是代码写少了纯模拟,甚至都不用动脑子的细节也不是很多但是每次没注意到的都是细节先说说这次卡死的两个地方:如果有多样例,一定要对公共元素进行更新(不会吧,还有人忘记这个)有些地方你是可以特判以后提前结束啊,,,,但是但是,人家还在输入啊。。。。。就会出现输入到了一半被你的break卡死,然后它以为是下一个样例了呜呜呜(这个地方debug了半个小时)思路:找个num不断加加当做要入栈的下一个数字,与输入的数字比较大小。如果输入的数字大的话你就要入栈(中间比较栈大小原创 2021-07-28 16:54:26 · 101 阅读 · 0 评论