摘要: 题目链接:http://poj.org/problem?id=2499思路分析:结点向左边移动时结点(a, b)变为( a+b, b),向右边移动时( a, b )变为( a, a + b);为求最短路径,考虑从已经知道的结点(a, b)开始找出最短路径回到根节点(1, 1),即向左移动次数和向右移... 阅读全文
posted @ 2014-10-06 21:14 Leptus 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=2255思路分析:根据先序遍历(如DBACEGF)可以找出根结点(D),其后为左右子树;根据中序遍历(如ABCDEFG),已知根结点(D),可以知道在根结点左边的为左子树结点(ABC),右边为右子树结点(EFG);可以求出左子树与右子树结... 阅读全文
posted @ 2014-10-06 15:46 Leptus 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=2021思路分析:由于数据较小,采用O(N^2)的暴力算法,算出所有后代的年龄,再排序输出。代码分析:#include #include #include using namespace std;#define MAX_N ( 100 +... 阅读全文
posted @ 2014-10-06 13:24 Leptus 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=2092思路分析:先统计数据,在根据Count降序排序,Count相等时按照Num升序排序;再输出Count第二大的所有Num;代码如下:#include #include #include using namespace std;#de... 阅读全文
posted @ 2014-10-06 05:26 Leptus 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=1002思路分析:先对输入字符进行处理,转换为标准形式;插入标准形式的电话号码到查找树中,若有相同号码计数器增加1,再中序遍历查找树。代码如下:#include #include #include struct TreeNode;type... 阅读全文
posted @ 2014-10-06 04:22 Leptus 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=2231思路分析:先排序,再推导计算公式。代码如下:#include #include using namespace std;int main(){ long long int ans = 0, arr[10010]; in... 阅读全文
posted @ 2014-10-06 02:56 Leptus 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=2371思路分析:使用计数排序或其他时间复杂度为O( log N )的排序。代码如下:#include #include #define MAX_N ( 100000 + 10 )using namespace std;int A[MAX... 阅读全文
posted @ 2014-10-06 02:24 Leptus 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 题目描述:http://poj.org/problem?id=2823思路分析:求某个区间的最大与最小值,可以使用两个单调队列,由于需要在队列前删除元素和在队列后增加元素,所以考虑使用双端队列;在双端队列中记录元素的下标,另外,双端队列为单调队列,满足单调非递增或单调非递减,则队列第一个元素为区间最... 阅读全文
posted @ 2014-10-06 01:03 Leptus 阅读(180) 评论(0) 推荐(0) 编辑