
PAT
不容置喙
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
PAT甲级 1033 To Fill or Not to Fill
解题总结 写题目之前一定要用文档把思路和解题写下来,尽量深尽量细,重复代码尽量用函数实现功能减少代码量,可大大减少潜在错误。 据说可以用以下代码来输入输出? 写题路程 看到题目大意为汽车加油最小花费/最大路程,以为和以前看到的一个加油题类似,为栈模拟, 或者应该是dp。最后发现是贪心。 题目思路 看了柳婼题解,贪心思路一致,关键是有一个 将最终目的地作为新增的一个油费为0的节点 油站信息用stru...原创 2019-09-23 18:55:58 · 163 阅读 · 0 评论 -
PAT甲级 1086 Tree Traversals Again (二叉树遍历+一个转弯)
思路 唯一二叉树的建立必须需要中序序列+前序/后序/层次遍历,在题目里面找。这里实在不好看出来。就尝试着把入栈序列出栈序列写出来看看有没有突破口叭。 入栈序列即是前序遍历,出栈序列即是中序遍历 代码 #include <iostream> #include<cstdio> #include<map> #include<queue> #include&...原创 2019-10-06 22:50:18 · 177 阅读 · 0 评论 -
PAT甲级 1020 Tree Traversals(二叉树的遍历与建树)
#include <iostream> #include<cstdio> #include<map> #include<queue> #include<string> #include<algorithm> #include<vector> #include<cmath> using namespace...原创 2019-10-06 21:16:00 · 207 阅读 · 0 评论 -
PAT甲级 1103 Integer Factorization (DFS)
呜呜,写题的时候好困呐…。结果不是很难的题目硬是搞了这么久!qwq哎。睡醒后看了1小时p站DJ…流泪。国庆放假啥都没干,唯一坚持的事情就是疯狂熬夜。天天睡得超级晚…刘海那一块儿要秃啦…(哭) 注意 1.int型幂函数自己写一个,不要用double类型的pow()函数,存在误差导致结果错误 2.为了保证输出满足条件的所有情况中字典序最大的。我们选择从大往小的遍历 3.每个数可重复选择,则可以把所有可...原创 2019-10-06 19:06:10 · 169 阅读 · 0 评论 -
PAT 甲级1050 String Subtraction 散列(字符串简单处理)
题意 给出两个字符串S1,S2,输出字符串S = S1-S2. 注意 1.S1,S2中可能包含空格,因此都要用gets(str)或者getline(cin,str). 2.若先使用scanf再使用geline,需要在getline前用getchar()读取掉回车/n 代码 #include <iostream> #include<cstdio> #include<ma...原创 2019-10-06 14:24:58 · 127 阅读 · 0 评论 -
PAT甲级 1092 To Buy or Not to Buy 散列
方法1:map容器代替hash散列 代码 #include <iostream> #include<cstdio> #include<map> #include<queue> #include<string> #include<algorithm> #include<vector> using namespace ...原创 2019-10-06 13:07:33 · 131 阅读 · 0 评论 -
PAT 甲级 1084 Broken Keyboard 散列
思路 两个字符串分别用string ori, test保存下来。map<string, int>vis标记该字符是否已经在ori出现过,vector values来保存ori中出现过的字符,map<string, int>appear来记录test中该字符是否出现过。 注意 1.题目要求字符大小写都当做大写处理:则c若为小写字符(c >= ‘a’ &&...原创 2019-10-06 10:48:51 · 180 阅读 · 0 评论 -
PAT 1067 Sort with Swap(0, i)(贪心)
一开始看错题目,没看懂题目限制了每次交换必须用0与另一个数交换,求最小交换次数。一开始还以为是那种BIT线段数求逆序数组(冒泡排序次 数)那种题。 思路 代码 #include <iostream> #include<cstdio> #include<map> #include<queue> #include<algorithm> usi...原创 2019-10-06 09:32:08 · 144 阅读 · 0 评论 -
PAT甲级 1048 Find Coins(二分/map 来查找是否有硬币之和恰好为m)
1.map容器 #include <iostream> #include<cstdio> #include<map> #include<algorithm> using namespace std; typedef long long ll; const int maxn = 100000 + 5; map<int, int> mark...原创 2019-10-05 20:48:28 · 137 阅读 · 0 评论 -
PAT甲级 1085 Perfect Sequence 二分法
解题思路: 二分,O(nlogn)的复杂度才可以跑10^5的数据。直接找到第一个不满足条件的下标j,然后j-1即使最后一个满足条件的下标(即所求下标)。二分函数要么直接调用函数Upper_bound,要么自己写。 注意 1.数据109,由于要查找p*m,可能达到1018,故使用long long 来保存数据 2.要注意最大数据也满足M<=mp的情况 1)upper_bound若没找到大于所给...原创 2019-09-30 12:44:31 · 161 阅读 · 0 评论 -
PAT甲级 1044 Shopping in Mars 二分法
1.使用upper_bound简便方法 完全参照https://www.cnblogs.com/ligen/p/4351417.html的代码 思路: 1.二分遍历找出满足条件的最小花费nears 2.二分遍历枚举下标i,输出所有花费恰好为最小花费nears的情况。 #include <iostream> #include<cstdio> #include<algor...原创 2019-09-29 14:41:14 · 172 阅读 · 0 评论 -
PAT甲级 1043 Is It a Binary Search Tree (二叉查找树)
#include <iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<vector> #include<string> #include <map> #define LL long long using namespa...原创 2019-09-28 19:04:39 · 126 阅读 · 0 评论 -
PAT甲级 1040 Longest Symmetric String (DP/Hash)
解题历程 原本想用kmp/哈希映射来写,但是只是大致学习了思想,并没有用这两种方法去写过题目,遂看大家题解(…不可取),发现大家都是用动态规划dp来做的.我惊。 我真的好不会写dp,我枯了。今天晚上把dp对应书上内容看一遍。 三种解法 1.暴力 O(n^3) 2.动态规划dp O(n^2) 3.哈希hash O(nlogn) 动态规划Dp dp[i][j]表示从i到j是否为回文串 状态转移方程dp...原创 2019-09-28 19:01:32 · 164 阅读 · 0 评论 -
PAT甲级 1038 Recover the Smallest Number(字符串处理)
完全按照柳婼大神思路写的。 附链接:https://blog.csdn.net/liuchuo/article/details/52264827?locationNum=10&fps=1 思路 sort排序的bool函数cmp直接用 return a + b < b + a, 这样比较a放在前面和b放在前面谁更大,保证其按照能使数字最小的形式排列。 注意 1.最终输出时应该去掉前置0...原创 2019-09-25 21:13:45 · 145 阅读 · 0 评论 -
PAT甲级 1034 Gang(存在疑问)
(未完全完成)我自己的思路只有20分,两个样例错误一个段错误,但是思路和柳婼大神的一毛一样鸭,只是我用struct来存储所需信息,而不是dfs函数引用传递参数…我太难了qwq 今天继续debug 以及codeblocks需要在setting里设置支持c++11新标准才能用auto类型! 先附上柳婼大神的代码: 来源:https://blog.csdn.net/liuchuo/article/det...原创 2019-09-24 20:20:43 · 270 阅读 · 0 评论 -
PAT 甲级 1026 Table Tennis(逻辑复杂+坑多+代码量大容易出错)
解题总结 1.逻辑提前理清楚,条件都用文档写出来 2.代码量大的时候善用代码块隐藏和功能注释 3.若限制条件交叉,则选择以某一个为基础,展开不同情况往下讨论 写题路程 卡住的点: 1.不能用我自己原来的写法(优先队列模拟最先空余的桌子),因为VIP桌子编号不定,不好处理,则直接遍历所有桌子,分类讨论 2.现在队首的顾客来时,可能已经有很多个空闲的桌子,而要取满足要求的编号最小的桌子而非最早空闲的桌...原创 2019-09-23 19:27:02 · 345 阅读 · 0 评论 -
PAT甲级 1102 Invert a Binary Tree(二叉树遍历+给节点的左右儿子建树)
嘻嘻嘻今天把算法笔记上二叉树部分的题目写完啦开心嗷!下次开始继续写树的遍历啦啦~qwq 思路 按照给出的0~N-1号节点的左右儿子建树,没有出现过的那个数就是根结点。 1.左右子树翻转的数的层序遍历就是原来未翻转的层序遍历的倒置。 2.左右子树翻转的树的中序遍历就只需要按照:右子树→该节点→左子树 的顺序遍历并且输出即可~ #include <iostream> #include&l...原创 2019-10-07 00:05:54 · 216 阅读 · 0 评论