- 博客(26)
- 收藏
- 关注
原创 PAT甲级 1102 Invert a Binary Tree(二叉树遍历+给节点的左右儿子建树)
嘻嘻嘻今天把算法笔记上二叉树部分的题目写完啦开心嗷!下次开始继续写树的遍历啦啦~qwq思路按照给出的0~N-1号节点的左右儿子建树,没有出现过的那个数就是根结点。1.左右子树翻转的数的层序遍历就是原来未翻转的层序遍历的倒置。2.左右子树翻转的树的中序遍历就只需要按照:右子树→该节点→左子树 的顺序遍历并且输出即可~#include <iostream>#include&l...
2019-10-07 00:05:54
203
原创 PAT甲级 1086 Tree Traversals Again (二叉树遍历+一个转弯)
思路唯一二叉树的建立必须需要中序序列+前序/后序/层次遍历,在题目里面找。这里实在不好看出来。就尝试着把入栈序列出栈序列写出来看看有没有突破口叭。入栈序列即是前序遍历,出栈序列即是中序遍历代码#include <iostream>#include<cstdio>#include<map>#include<queue>#include&...
2019-10-06 22:50:18
156
原创 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
194
原创 PAT甲级 1103 Integer Factorization (DFS)
呜呜,写题的时候好困呐…。结果不是很难的题目硬是搞了这么久!qwq哎。睡醒后看了1小时p站DJ…流泪。国庆放假啥都没干,唯一坚持的事情就是疯狂熬夜。天天睡得超级晚…刘海那一块儿要秃啦…(哭)注意1.int型幂函数自己写一个,不要用double类型的pow()函数,存在误差导致结果错误2.为了保证输出满足条件的所有情况中字典序最大的。我们选择从大往小的遍历3.每个数可重复选择,则可以把所有可...
2019-10-06 19:06:10
154
原创 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
122
原创 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
123
原创 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
168
原创 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
135
原创 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
127
原创 Codeforces Round #590 (Div. 3) - E. Special Permutations(差分数组/线段树)
室友这题搞不懂,于是在她出去玩的时候我帮她研究题解…第一次了解了差分数组的知识差分数组入门:https://www.cnblogs.com/COLIN-LIGHTNING/p/8436624.html 写的真的很好,一康就懂惹qwq就是遍历所有对相邻两个的值的位置差,把他们对所有pi序列的函数值的贡献值加进去。(用差分数组/线段树实现区间加减操作,并可快速得到前缀和)#include &l...
2019-10-05 20:09:49
270
1
原创 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
157
原创 PAT甲级 1044 Shopping in Mars 二分法
1.使用upper_bound简便方法完全参照https://www.cnblogs.com/ligen/p/4351417.html的代码思路:1.二分遍历找出满足条件的最小花费nears2.二分遍历枚举下标i,输出所有花费恰好为最小花费nears的情况。#include <iostream>#include<cstdio>#include<algor...
2019-09-29 14:41:14
162
原创 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 longusing namespa...
2019-09-28 19:04:39
116
原创 PAT甲级 1040 Longest Symmetric String (DP/Hash)
解题历程原本想用kmp/哈希映射来写,但是只是大致学习了思想,并没有用这两种方法去写过题目,遂看大家题解(…不可取),发现大家都是用动态规划dp来做的.我惊。我真的好不会写dp,我枯了。今天晚上把dp对应书上内容看一遍。三种解法1.暴力 O(n^3)2.动态规划dp O(n^2)3.哈希hash O(nlogn)动态规划Dpdp[i][j]表示从i到j是否为回文串状态转移方程dp...
2019-09-28 19:01:32
155
原创 9.26 两场谈话
1.9.26晚第一场谈话找保研浙大的学长聊了一下,推免是按照前三年平均绩点来取名额的,有点狡猾…qwq,学长一开始是鼓励多把时间用来做提高能力的事情…(数据结构+算法题之类),我上个学期实在颓废,既没有认真系统学习算法,也没有认真提高绩点(最终大一下只有4.3),现在去问还是说能努力争取推免就推免…哎呀。但是其实呢,最大的原因还是我自己呢!泄气话我也要记录下来,因为是真实的心情。所以认清事实后你...
2019-09-27 00:03:51
281
2
原创 PAT甲级 1038 Recover the Smallest Number(字符串处理)
完全按照柳婼大神思路写的。附链接:https://blog.youkuaiyun.com/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
133
原创 PAT甲级 1034 Gang(存在疑问)
(未完全完成)我自己的思路只有20分,两个样例错误一个段错误,但是思路和柳婼大神的一毛一样鸭,只是我用struct来存储所需信息,而不是dfs函数引用传递参数…我太难了qwq 今天继续debug以及codeblocks需要在setting里设置支持c++11新标准才能用auto类型!先附上柳婼大神的代码:来源:https://blog.youkuaiyun.com/liuchuo/article/det...
2019-09-24 20:20:43
259
原创 PAT 甲级 1026 Table Tennis(逻辑复杂+坑多+代码量大容易出错)
解题总结1.逻辑提前理清楚,条件都用文档写出来2.代码量大的时候善用代码块隐藏和功能注释3.若限制条件交叉,则选择以某一个为基础,展开不同情况往下讨论写题路程卡住的点:1.不能用我自己原来的写法(优先队列模拟最先空余的桌子),因为VIP桌子编号不定,不好处理,则直接遍历所有桌子,分类讨论2.现在队首的顾客来时,可能已经有很多个空闲的桌子,而要取满足要求的编号最小的桌子而非最早空闲的桌...
2019-09-23 19:27:02
331
原创 PAT甲级 1033 To Fill or Not to Fill
解题总结写题目之前一定要用文档把思路和解题写下来,尽量深尽量细,重复代码尽量用函数实现功能减少代码量,可大大减少潜在错误。据说可以用以下代码来输入输出?写题路程看到题目大意为汽车加油最小花费/最大路程,以为和以前看到的一个加油题类似,为栈模拟, 或者应该是dp。最后发现是贪心。题目思路看了柳婼题解,贪心思路一致,关键是有一个 将最终目的地作为新增的一个油费为0的节点油站信息用stru...
2019-09-23 18:55:58
152
原创 杭电OJ 2077 汉诺塔IV
Problem Description还记得汉诺塔III吗?他的规则是这样的:不允许直接从最左(右)边移到最右(左)边(每次移动一定是移到中间杆或从中间移出),也不允许大盘放到小盘的上面。xhd在想如果我们允许最大的盘子放到最上面会怎么样呢?(只允许最大的放在最上面)当然最后需要的结果是盘子从小到大排在最右边。Input输入数据的第一行是一个数据T,表示有T组数据。每组数据有一个正整...
2019-02-14 18:42:44
423
原创 17:字符串判等 (C语言) 先辈版
描述判断两个由大小写字母和空格组成的字符串在忽略大小写,且忽略空格后是否相等。输入两行,每行包含一个字符串。输出若两个字符串相等,输出YES,否则输出NO。样例输入a A bb BB ccc CCCAa BBbb CCCccc样例输出YES思路:先将俩数组处理,删去其中的空格,小写全换大写,再用strcmp(s1,s2)判断俩数组是否一样tips:1.用函数使用指...
2018-11-26 11:07:14
2875
1
原创 18:验证子串(C语言)
题目输入两个字符串,验证其中一个串是否为另一个串的子串。输入输入两个字符串, 每个字符串占一行,长度不超过200且不含空格。输出若第一个串s1是第二个串s2的子串,则输出(s1) is substring of (s2)否则,若第二个串s2是第一个串s1的子串,输出(s2) is substring of (s1)否则,输出 No substring。样例输入abcdddnc...
2018-11-25 23:46:08
4201
原创 忽略大小写的字符串比较 C语言
描述一般我们用strcmp可比较两个字符串的大小,比较方法为对两个字符串从前往后逐个字符相比较(按ASCII码值大小比较),直到出现不同的字符或遇到’\0’为止。如果全部字符都相同,则认为相同;如果出现不相同的字符,则以第一个不相同的字符的比较结果为准(注意:如果某个字符串遇到’\0’而另一个字符串还未遇到’\0’,则前者小于后者)。但在有些时候,我们比较字符串的大小时,希望忽略字母的大小,例如...
2018-11-24 22:48:15
3557
原创 字符串练习 整理药名
整理药名描述医生在书写药品名的时候经常不注意大小写,格式比较混乱。现要求你写一个程序将医生书写混乱的药品名整理成统一规范的格式,即药品名的第一个字符如果是字母要大写,其他字母小写。如将ASPIRIN、aspirin整理成Aspirin。输入第一行一个数字n,表示有n个药品名要整理,n不超过100。接下来n行,每行一个单词,长度不超过20,表示医生手书的药品名。药品名由字母、数字和-组成。...
2018-11-24 21:07:06
617
原创 笨小猴 (C语言)
标题06:笨小猴总时间限制: 1000ms 内存限制: 65536kB标题描述笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那么笨小猴就认为这是个Lu...
2018-11-18 16:42:36
3701
1
原创 计算2^N(高精度计算)C语言
计算2^N(高精度计算)C语言总时间限制: 1000ms 内存限制: 65536kB描述任意给定一个正整数N(N&lt;=100),计算2的n次方的值。输入输入一个正整数N。输出输出2的N次方的值。样例输入5样例输出32提示高精度计算分析 : 2^100为31位数字,任何整型数据无法保存,而用double虽可保存但有误差,故考虑用数组,各位数用单独一个元素保存。注...
2018-11-18 16:29:15
7933
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人