码迷,mamicode.com
首页 >  
搜索关键字:序列    ( 40963个结果
HDU 4521-小明序列(线段树好题)
题意:n个数字的序列,求各数位置间隔大于d的最长上升子序列分析:最基本的dp但是数据量大O(n^2)肯定超时 前dp[i]为的最长上升子序列是由前dp[1]---dp[i-d-1]符合条件的最大值得到,我们可以用线段树维护dp[1]---dp[i-d-1]的最大值#include #include ...
分类:其他好文   时间:2015-08-09 23:57:11    阅读次数:104
uva 11525(单点修改)
题意:有一个由1到k组成的序列,最小是1 2 … k,最大是 k k-1 … 1,给出n的计算方式,n = s0 * (k - 1)! + s1 * (k - 2)! +… + sk-1 * 0!,给出s1…sk,输出序列里第n大的序列。 题解:通过找规律发现结果是可以递推的,比如第三组样例: 4 2 1 1 0 那么n = 2 * 3! + 1 * 2! + 1 * 1! + 0 * 0!...
分类:其他好文   时间:2015-08-09 22:42:53    阅读次数:198
生成所有的出栈序列 (回溯法)
给定一个入栈序列,找出所有可能的出栈序列。如入栈序列为 [1, 2, 3] 则可能的出栈序列为 : [ 3 2 1 ] [ 2 3 1 ] [ 2 1 3 ] [ 1 3 2 ] [ 1 2 3 ]采用回溯法和递归统计所有可能的出栈序列。 当所有的入栈序列已经全部入栈后,则只能出栈 当栈为空时,只能进栈 当仍有入栈元素且栈不为空时,可以入栈,也可以出栈 入栈 -> 递归处理下一个入栈元...
分类:其他好文   时间:2015-08-09 22:42:46    阅读次数:208
生成所有的出栈序列 (回溯法)
给定一个入栈序列,找出所有可能的出栈序列。如入栈序列为 [1, 2, 3] 则可能的出栈序列为 : [ 3 2 1 ] [ 2 3 1 ] [ 2 1 3 ] [ 1 3 2 ] [ 1 2 3 ]采用回溯法和递归统计所有可能的出栈序列。 当所有的入栈序列已经全部入栈后,则只能出栈 当栈为空时,只能进栈 当仍有入栈元素且栈不为空时,可以入栈,也可以出栈 入栈 -> 递归处理下一个入栈元...
分类:其他好文   时间:2015-08-09 22:42:28    阅读次数:240
HDU 1394-Minimum Inversion Number(BIT)
题意:给你n个数字的序列 每次把第一个数字放到最后 得到一个新序列 一共有n个序列求这些序列中哪个序列含最小的总的逆序数 (输出最小总逆序数)分析:用BIT求出初始各数的逆序数,第一个数放最后它逆序数变正序,正序变逆序。#include #include #include #include #inc...
分类:其他好文   时间:2015-08-09 22:29:39    阅读次数:143
POJ 2828-Buy Tickets(线段树)
题意:有n个人,每人有一定的价值,给n个安排,每次安排有两个数 p,v p是这个人前面人的个数 (直接插在第p个人后面其他人后移),v是它的价值,n个安排后 求最终的价值序列。分析:越在后面的安排越是他的最终位置,所有我们要从后向前做,每次找前面有p个空位的位置,找到后空位减一,用线段树来维护区间的...
分类:其他好文   时间:2015-08-09 22:23:25    阅读次数:127
Java实现算法之--选择排序
选择排序也是比较简单的一种排序方法,原理也比较容易理解,它与冒泡排序的比较次数相同,但选择排序的交换次数少于冒泡排序。冒泡排序是在每次比较之后,若比较的两个元素顺序与待排序顺序相反,则要进行交换,而选择排序在每次遍历过程中只记录下来最小的一个元素的下标,待全部比较结束之后,将最小的元素与未排序的那部分序列的最前面一个元素交换,这样就降低了交换的次数,提高了排序效率。看一下实现代码:public c...
分类:编程语言   时间:2015-08-09 20:44:00    阅读次数:128
二分查找法。
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两...
分类:其他好文   时间:2015-08-09 20:24:22    阅读次数:129
Codevs1090 加分二叉树
思路:不管它是序列型DP还是树形DP,反正就是DP了。我们记f[l,r]为从l至r这一段序列构成的加分二叉树的最大值,那么f[l,r]的值来自于三种情况,即l是根,或r是根,或k(k∈(l,r))是根,说白了就是要在l至r这一段序列中枚举根的位置求最大值。由于我们求的时候要递归到单个节点上再从下往上回溯求解各个f[l,r],所以f[l,r]仅与它下一级的f[l’,r’]有关,不会也不会被上一级影响,...
分类:其他好文   时间:2015-08-09 18:54:01    阅读次数:124
C++STL位标志、智能指针与异常处理
参考《21天学通C++》第25、第26、第28章节,对STL位标志、智能指针与C++异常处理进行介绍。 一、使用STL位标志 位是存储设置与标志的高效方法。标准模板库提供了可帮助组织与操作位信息的类。 1. bitset类 std::bitset不是STL容器类,因为它不能调整长度,这是一个实用类,针对处理长度在编译阶段已知的位序列进行了优化。需包含#include 。 2. 实例化bi...
分类:编程语言   时间:2015-08-09 18:49:13    阅读次数:149
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!