- 2
- 0
- 约3.54千字
- 约 26页
- 2018-08-31 发布于广东
- 举报
序的应用 长沙市雅礼中学 龙凡 基本的序 序的应用 使得一个问题得到直接解决(大多是交互式问题) 应用序,挖掘题目的深层性质,使得问题得到转化。 树的构造 树的构造 树的构造 树的构造 树的构造 不能漏填,也不能冲突。 每个格子的左边,都恰好有t(i)个格子填入了自己的子孙。 不能超出1…n的边界范围。 树的构造 树的构造 已知一个一维线形结构 最开始所有位置为空。根据DFS序列,每次插入一个元素j,到第t(j)+1个空位置 求出最终状态 借助线段树或树状数组等数据结构可以将问题在O(N log N)时间复杂度内解决,空间复杂度为O(N) 小结 通过对题目特点的分析,借助DFS序列的性质,对原问题进行转化。 合理的使用数据结构,最终完整解决问题。 士兵排队 士兵排队 士兵排队 直接模拟的最坏时间复杂度为O(N2),效率十分低下。 使用平衡二叉树,可以得到一个O(N log (N+M))的算法。但平衡二叉树时间复杂度常数系数比较大,而且较难实现。 不妨抛开纯粹模拟的思路,另辟蹊径。 士兵排队 士兵排队 注意到上面的例子中1因为2的插入而向右移动了一格。 我们要避免连锁移动,就是希望通过一个规则,使得士兵1能够直接插入到3号位置。我们可以先插入士兵2而不是士兵1,然后再将士兵1插入到第2个空位置中。 具体地说,定义:newgoto(L,S)命令,将S士兵插入到第L个空位置中
原创力文档

文档评论(0)