码迷,mamicode.com
首页 >  
搜索关键字:io    ( 172858个结果
UVA 10655 - Contemplation! Algebra(矩阵快速幂)
UVA 10655 - Contemplation! Algebra 题目链接 题意:给定p, q, n代表p=a+b,q=ab求an+bn 思路:矩阵快速幂,公式变换一下得到(an+bn)(a+b)=an+1+bn+1+ab(an?1+bn?1),移项一下得到an+1+bn+1=(an+bn)p?q(an?1+bn?1) 这样就可以用矩阵快速幂求解了 代码: ...
分类:其他好文   时间:2014-07-20 23:36:03    阅读次数:300
STL 源码剖析 算法 stl_algo.h -- nth_element
nth_element ------------------------------------------------------------------------------ 描述:重新排序,使得[nth,last)内没有任何一个元素小于[first,nth)内的元素, 但对于[first,nth)和[nth,last)两个子区间内的元素次序则无任何保证。 思路: 1.以 median-of-3-partition 将整个序列分割为更小的左、右子序列 2.如果 nth 迭代器落于左序列,就再对左子...
分类:其他好文   时间:2014-07-20 23:20:34    阅读次数:279
汉诺塔系列问题: 汉诺塔II、汉诺塔III、汉诺塔IV、汉诺塔V、汉诺塔VI
汉诺塔 汉诺塔II hdu1207: 先说汉若塔I(经典汉若塔问题),有三塔,A塔从小到大从上至下放有N个盘子,现在要搬到目标C上, 规则小的必需放在大的上面,每次搬一个,求最小步数。这个问题简单,DP:a[n]=a[n-1]+1+a[n-1],先把 上面的n-1个放在B上,把最大的放在目标C上,再把N-1个放回到C上即可。 网上的一种最优解法如下:(1)将x(1 #inc...
分类:其他好文   时间:2014-07-20 23:18:31    阅读次数:272
poj 2369 Permutations 置换水题
找循环节求lcm就够了,若答案是12345应该输出1,被坑了下。 #include #include #include #include #include #include using namespace std; #define INF 0x3FFFFFF #define MAXN 2222 #define eps 1e-6 int a[MAXN],p[MAXN],b[MAXN],vis[MA...
分类:其他好文   时间:2014-07-20 23:12:48    阅读次数:309
STL 源码剖析 算法 stl_algo.h -- random_shuffle
random_shuffle -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 描述:将[first,last)的元素次序随机重排。 思路: 必须是 RandomAccessIterator 1.遍历区间 2.产生[...
分类:其他好文   时间:2014-07-20 23:12:29    阅读次数:231
STL 源码剖析 算法 stl_algo.h -- pre_permutation
pre_permutation ---------------------------------------------------------------- 描述: 取得 [first, last) 所标示之序列的前一个排列组合。如果没有,返回 false,有,返回true 思路: 从后往前 1.找两个相邻元素,令左端的元素为*i,右端的元素为*ii,且满足 *i > *ii 2.找出第一个小于 *i 的元素,令其为 *j,将*i,*j元素对调 3.将ii右端的所有元素颠倒 template <cl...
分类:其他好文   时间:2014-07-20 23:07:55    阅读次数:286
UVA 11149 - Power of Matrix(矩阵倍增)
UVA 11149 - Power of Matrix 题目链接 题意:给定一个n*n的矩阵A和k,求∑kiAi 思路:利用倍增去搞,∑kiAi=(1+Ak/2)∑k/2iAi,不断二分即可 代码: #include #include const int N = 45; int n, k; struct mat { int v[N][N]; mat() ...
分类:其他好文   时间:2014-07-20 23:07:20    阅读次数:274
STL 源码剖析 算法 stl_algo.h -- equal_range
equal_range(应用于有序区间) -------------------------------------------------------------------------------------------------------------------------------------- 描述:利用二分查找找到一个区间,区间里的所有值都等于给定值,返回的是一个pair, 分别存储区间的上界迭代器和下界迭代器 源码: template <class ForwardIterator, c...
分类:其他好文   时间:2014-07-20 23:06:36    阅读次数:263
STL 源码剖析 算法 stl_algo.h -- merge sort
merge sort ---------------------------------------------------------------------- 描述:归并排序 思路: 1.将区间对半分割 2.对左、右段分别排序 3.利用inplace_merge将左、右段合并成为一个完整的有序序列 复杂度:O(log n) 源码: template void mergesort(BidirectionalIter first, Bidirecti...
分类:其他好文   时间:2014-07-20 23:05:52    阅读次数:245
C++ implementation of DF Traversal
如下图:     这里我们实现DFS中的三种遍历方法。 相关的如下: 相关算法的介绍不再赘述。 首先对于preorder traversal 的步骤为: 其他两种算法略。 具体递归调用分析, 注意学会画stack frame的图分析。 这里不再赘述。 代码如下: /* Binary Tree Traversal - Preorder, Inorder, Postor...
分类:编程语言   时间:2014-07-20 23:05:10    阅读次数:365
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!