- 博客(2)
- 资源 (1)
- 收藏
- 关注
转载 noip 2008 双栈排序
题目大意: 给定n和一串数字,这串数字是一个1~n的排列。现在要用两个栈给这些数字排序。首先先判断是否有解,有解的话再输出字典序最小的方案: 入栈1,输出a,出栈1,输出b 入栈2,输出c,出栈2,输出d 分析: 首先必然要先考虑是否有解。对于没有解的情况,必然是当到了某一个数x0时,栈1,栈2队首元素都不能弹出,并且x0要比栈1、2的队首元素都要大,这时就不能排序了。 所以考虑什么时候A、B不能在同一个栈中的情况: 当且仅当,A<B,并且存在C,使得A>C.并满足A位置在B前面,B位置在C前面
2020-09-06 20:32:27 137
原创 蒟蒻の分治算法总结
分治算法定义 将一个问题分解成多个子问题,将问题缩小到一定规模后逐个求解,最后合并所有子问题 分治算法步骤 分解(将原问题分解成一个形式相同规模更小的子问题) 解决(递归求解子问题,直到问题的规模足够小,直接求解) 合并(合并子问题的解,得到原问题的解) 分治算法例题(实际应用) 插入排序 思路 一道十分普通的O(n2)O(n^2)O(n2)时间复杂度题,使用类似打扑克牌时给牌排序的分治思想递归实现即可 即: 先给n-1张牌排序,再分成给n-2张牌排序,以此类推… 直到只剩1张牌,则直接结束 C
2020-09-05 10:31:23 138
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人