一道和Leetcode的一道题目基本上一样的题目。
给出前序遍历和中序遍历序列,要求根据这些信息恢复一颗二叉树的原貌,然后按后序遍历序列输出。
Leetcode上有给出后序和中序,恢复二叉树的。
不过其实算法都是一样的。仿佛又回到了做Leetcode题的那段岁月中了。
#include
#include
#include
using std::string;
const int...
分类:
其他好文 时间:
2014-07-06 12:24:42
阅读次数:
129
Description
Consider an infinite full binary search tree (see the figure below), the numbers in the nodes are 1, 2, 3, .... In a subtree whose root node is X, we can get the minimum number in this ...
分类:
其他好文 时间:
2014-07-06 11:36:14
阅读次数:
284
最小生成树第K小边问题。
题意是说有N个点,有两种连通方式,卫星和无线,卫星随意连通,无限需要配置接收器,接收器价格跟能接受的距离是一样的。
卫星频率是有限的,有M个频道。
也就是说组建最小生成树,前面 n-1-m 边用无线,后面m边用卫星。
用一个数组保存每次所需的代价,最后输出就好。
#include
#include
#include
#include
...
分类:
Web程序 时间:
2014-07-06 11:32:45
阅读次数:
151
又是一道大数相加的题目,直接模板或者Java都可以水过了。
循环相加33次就可以了,计算出A99是第几个,准确输出答案。
#include
#include
#include
using std::string;
const int MAX_B = 5120;
char buf[MAX_B];
int id = 0, len = 0;
inline char getFromBuf(...
分类:
其他好文 时间:
2014-07-06 10:35:58
阅读次数:
190
本题就是说一个小神童,能计算加减法。
不过题目知识说这个小神童,到底有多神,要我们自己发现。
因为最后给出的数据非常非常巨大,听说接近50k就是超过50000个数位相加,可想而知他多神。
看来题目也是考IQ啊!
如果以为是超级水题,按照一般加减法做,肯定是WA了。
这里给出使用string的加减法运算,因为string是长度可增可减的,所以不管是多少位,只要内存支持,那么本算法都可以支持...
分类:
其他好文 时间:
2014-07-06 10:34:40
阅读次数:
137
题目大意:
问的是m个字符串里,都出现过的子串。子串也可以出现在这个串的逆序串中。
思路分析:
居然wa在全5个 “a” 的数据上。
二分的时候下界不能为0。。
思路大致上是把原串和逆序串全部处理出来,放入str中,然后在每个串中间加一个没有出现过的。
此处注意输入不仅仅是字母。
然后跑一遍后缀数组。
然后用标记计数就好了。
#include
#include ...
分类:
其他好文 时间:
2014-07-06 10:07:36
阅读次数:
202
给出按最底层叶子节点到根节点的数据,然后要求重建树,前序输出最终建的树。
都是两个基本操作解决:
1 二叉树插入操作
2 前序遍历
简单题目了。
#include
#include
#include
#include
using std::vector;
using std::string;
const int MAX_B = 1024;
char buf[MAX_B...
分类:
其他好文 时间:
2014-07-06 09:54:52
阅读次数:
239
也是最小生成树问题。输出剩余组成生成树的边。
Special Judge 答案不唯一。
不过很奇怪的是Kruskal 写的话。
C++提交要么刚好1000ms 要么就是TLE。
然后G++提交就是594ms。顺便求路过大神指点。
已经有很多的生成边了,用prim可能用时会少一点。
#include
#include
#include
#include
#in...
分类:
其他好文 时间:
2014-07-06 09:22:50
阅读次数:
168
最小生成树问题。
给你一组字母序列,问你最有可能的演变,也就是把所有的序列连通所花费最小。
每次派生的花费 取决于两个字符串上 不同的字母个数。
于是两两算出花费,然后Kruskal算最小。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#i...
分类:
其他好文 时间:
2014-07-06 00:32:05
阅读次数:
291
题目大意:
求出字典序最小,重复次数最多,的子串。
思路分析:
RMQ + height 数组可以求出任意两个后缀的lcp
我们枚举答案字符串的重复的长度。
如果这个字符串的长度为 l ,而且这个字符串出现过两次或两次以上
那么你会发现在原串中 str[0] str[l] str[2*l] ....肯定有相邻的两个被包含在重复的串中。
我们求出这两个相邻的后缀的lcp
我...
分类:
其他好文 时间:
2014-07-05 23:47:48
阅读次数:
178