背包问题
贪心算法
排序问题
- 1089 Insert or Merge 非递归实现的归并排序
- 1098 Insertion or Heap Sort 堆排序(最大堆的调整函数SiftDown())
树问题
- 1066 Root of AVL Tree (25 分) AVL树的插入算法,四种旋转调整算法
- 1064 Complete Binary Search Tree 有关二叉搜索树和完全二叉树,但不是建树插入问题,考察树的性质
- 1076 Forwards on Weibo DFS v.s BFS 比较分析 本题DFS会超时
- 1086 Tree Traversals Again 已知树的中序与前序求后序,解决方案:构建了二叉树后再后序遍历
- 1091 Acute Stroke 实现方法:队列模拟的BFS,求连通图个数
- 1110 Complete Binary Tree 判断是否为完全二叉树,方法:用层次遍历(记录遍历的个数cnt),读到空结点并且(cnt==n)那就是完全二叉树,如果(cnt!=n)那就不是完全二叉树。
- 1118 Birds in Forest 并查集v
- 1119 Pre- and Post-order Traversals 前序后序求中序(情况不唯一),递归打印中序有注意
- 1151 LCA in a Binary Tree 最近公共祖先问题,需要关注找规律,一般不需要建树
图问题
- 1072 Gas Station Dijkstra的应用
- 1131 Subway Map 原来DFS、BFS算法也是可以求解最短路径问题的,但只是对于顶点之间没有距离可言的时候DFS、BFS才会比较容易
数论问题
溢出问题
- 1065 A+B and C (64bit) (20 分) long long v.s long double
要细心系列
- 1069 The Black Hole of Numbers
- 1071 Speech Patterns (25 分) 可用ctype.h的isalnum()函数、tolower()函数
- isalnum()函数是用于检查所传的字符是否是字母和数字
- tolower()函数是用于把字母字符转换成小写,非字母字符不做出处理
- 1073 Scientific Notation (20 分) substr(start,length)第二个参数是长度,不是end
- 1075 PAT Judge 得分为0分与均未通过/均无提交的0分 不同
- 1077 Kuchiguse (20 分) 判断尾部相同公共部分
- 1082 Read Number in Chinese 这道题就是魔鬼 我完全是死脑筋做下去的
- 1057 Stack 本来这题考的应该是二分思想,用两个multiset模拟二分找中值的解法,但是总是有出错,我感觉思想没有错误,后来发现我用了multiset 的erase(*迭代器)会删除多个相等的元素,而不是指定位置的某个元素,太马大哈了,应该是erase(迭代器)删除指定位置的某个元素
- 1072 Gas Station 要细心,不在服务内的距离首先要该距离是到house的,而不是把到备选gas station位置的距离也算入
- 1133 Splitting A Linked List 输出格式需要注意
- 1139 First Contact 注意:输出时候以4位数的方式输出,A在寻找同性朋友时,需要避免找到他想要的伴侣B,-0000和0000对int来说都是0
- 1148 Werewolf - Simple Version 暴力,从哪两个人说谎开始枚举
- 1156 Sexy Primes 需要注意isPrime(x) 只需要比较到sqrt(x)就可以了
- 1159 Structure of a Binary Tree sscanf()用法,举例:sscanf(str.c_str(), "%d and %d are siblings", &A, &B); str是string类型,需要通过.c_str()转换为const char*,与C兼容
- 1160 Forever 细心点,DFS暴力遍历
真的希望明天一切顺利! 呜不想我自己意义上的夏0营~