算法
guang光撒旦
码农
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
piotr_ants蚂蚁相遇问题练习
1 /* 2 * ===================================================================================== 3 * 4 * Filename: piotr_ants.c 5 * 6 * Description: 蚂蚁问题 7 * 8 *原创 2014-04-30 23:27:50 · 1201 阅读 · 0 评论 -
算法导论笔记(4)
快速排序思想代码总结优化根据分区大小调整算法三平均分区法随机化版本快速排序思想快排是分治的思想。分解: A[p…r]分成A[p…q-1]和A[q+1…r]两个数组,q的位置固定,每趟排序会有一个元素固定解决: 递归调用,对A[p…q-1]和A[q+1…r]排序合并: 原址排序,无需合并操作代码#include <cstdio>#include <algorithm>using n原创 2015-03-25 14:32:39 · 371 阅读 · 0 评论 -
使用STL的next_permutation函数生成全排列(C++)
1、碰到next_permutation(permutation:序列的意思)今天在TC上碰到一道简单题(SRM531 – Division Two – Level One),是求给定数组不按升序排列的最小字典序列(Sequence of numbers A is lexicographically smaller than B if A contains a smaller number o转载 2015-03-06 15:18:01 · 303 阅读 · 0 评论 -
算法导论笔记(4)
算法导论笔记(4)算法导论笔记4计数排序思想代码基数排序桶排序计数排序思想假设:n个输入元素中的每一个都是介于0到k之间的整数 基本思想:对每一个输入元素x,确定出小于x的元素个数 分析: O(n+k),当k=O(n)是,运行时间为O(n) 稳定排序假定输入是个数组A[1…n],length[A]=n,存放排序结果的B[1..n],提供临时存储区的C原创 2015-03-30 10:43:25 · 235 阅读 · 0 评论 -
算法导论笔记(1)
算法导论笔记第二章算法导论笔记第二章插入排序代码总结分治思想归并排序代码总结选择排序代码总结插入排序代码void InsertSort(ElemType A[]){ for( i=2;i<A.length();i++){ A[0]=A[i]; for(j=i-1;i>=1;i++){ if(A[j]<A[0]){原创 2015-03-22 20:44:46 · 392 阅读 · 0 评论 -
算法导论笔记(2)
算法导论笔记(2)算法导论笔记2分治策略代入法递归树法主方法最大子数组思想代码矩阵算法普通计算strassen算法分治策略代入法两个步骤: 1) 猜测解的形式 2) 用数学归纳法找出解真正有效的常数递归树法画出一颗递归树来得到好猜测。 在递归树中,每一个结点都代表递归函数调用集合中一个子问题的代价。我们将树中每一层内的代价相加得到一个每层代价的集合,再将每层的代原创 2015-03-23 12:53:53 · 486 阅读 · 0 评论 -
算法导论笔记(5)
算法导论笔记(5)算法导论笔记5中位数和顺序统计学基本概念选择问题描述最大值和最小值优化以期望线性时间做选择中位数和顺序统计学基本概念 顺序统计量:在一个由n个元素组成的集合中,第i个顺序统计量是值该集合中第i小的元素。例如最小值是第1个顺序统计量,最大值是第n个顺序统计量。中位数:一般来说,中位数是指它所在集合的“中间元素”,当n为奇数时,中位数是唯一的,出现位置为n/2;当n为偶数原创 2015-03-31 15:03:35 · 272 阅读 · 0 评论 -
算法导论笔记(3)
算法导论笔记(3)算法导论笔记3堆排序思想堆排序思想二叉堆被看成一个近似的完全二叉树,树上每一个结点对应数组中的一个元素。除了最底层以外,该树是完全充满的。 PARENT(i) return i/2 父节点 LEFT(i) return 2*i; 左节点 RIGHT(i) return 2*i+1 右节点分为最大堆和最小堆 最大堆满足A[PARENT(I)]>A[I] 最小堆满足原创 2015-03-24 09:58:16 · 313 阅读 · 0 评论 -
POJ 2253Frogger求路径中最大权值最小路
题目大意: 给出两只青蛙的坐标A、B,和其他的n-2个坐标,任一两个坐标点间都是双向连通的。显然从A到B存在至少一条的通路,每一条通路的元素都是这条通路中前后两个点的距离,这些距离中又有一个最大距离。 现在要求求出所有通路的最大距离,并把这些最大距离作比较,把最小的一个最大距离作为青蛙的最小跳远距离。Floyd算法 用Floyd算法求出两两最短路,再求出从每个点开始的最长路,最后从这n个最长路原创 2015-03-24 23:34:40 · 533 阅读 · 0 评论 -
poj2236和poj1611并查集问题
POJ 2236问在计算机坏了,修复若干,问检测两台是否能连通#include #include #include using namespace std;const int N = 1005;struct Point{ int x,y;};Point p[N];int repaired[N];int pre[N],rank[N];原创 2015-04-01 18:49:01 · 430 阅读 · 0 评论 -
HDU 1069Monkey and Banana动规 最长子序列类问题
给你n个长方体,猴子踩着长方体上去房顶。问最高可以多高,上一个必须比下一个长方体接触面的长宽都要小。记录长宽高x,y,z调整一下变成x最小,y次之,z最大。,然后记录下来三种(x,y,z)(z,x,y)(y,x,z),保证z位置比y位置大,然后以z位置为基础排序。dp[i]=max(dp[i],dp[j]+height[i])用最长子序列的思想,如果满足上一个y小于值一个y,上一个z小原创 2015-04-12 11:45:16 · 311 阅读 · 0 评论 -
uva201 Squares 记录
uva201 Squares 题解 Squares A children's board game consists of a square array of dots that contains lines connecting some of the pairs of adjacent dots. One part of the原创 2014-11-11 15:25:15 · 466 阅读 · 0 评论 -
gcd与扩展gcd
gcd用于求最小公约数,lcm求最大共倍数。ngcd求你原创 2014-11-10 22:58:09 · 424 阅读 · 0 评论 -
归并排序学习
归并算法归并算法首先在《算》原创 2014-05-04 16:06:10 · 445 阅读 · 0 评论 -
trie树 整理学习
感觉讲的很难,知识点很多。当时很多没有听懂,现在一边看着讲义一边在我那个上查资料吧。辅以例题,有时间了再细细消化字典树==前缀树==Trie树:查询某个单词(前缀)在所有单词中出现次数的一种数据结构查询和插入时间复杂度都是O(n),是一种以空间换时间的方法。(字典树)字典树与字典很相似,当你要查一个单词是不是在字典树中,首先看单词的第一个字母是不是在字典原创 2014-07-17 13:11:06 · 509 阅读 · 0 评论 -
北大暑期学校第二天 整理(1)
Disjoint-Set并查集原创 2014-07-15 21:44:26 · 560 阅读 · 0 评论 -
从hdu1004和hdu1005两道水题学到的
从hdu1004和hdu1005两道水题学到的1.hdu1004是Problem DescriptionContest time again! How excited it is to see balloons floating around. But to tell you a secret, the judges' favorite time is guessi原创 2014-06-27 19:03:30 · 161 阅读 · 0 评论 -
ACM基本输入输出
ACM基本输入输出 在开始做ACM时,会面临一个输入输出数据的问题,ACM里的输入输出数据和平时的写程序不大一样。为什么会不一样呢,这就牵涉到评测系统怎么判断你提交的程序是正确的。实际上评测系统是把程序的标准输入输出数据都是放在文本文件里,你提交的程序会先经过编译,然后运行,从输入文件中读取数据,然后把结果输出到一个文本文件中,评测系统再把标准的输出文件和你提交的程序运行的转载 2014-05-25 19:12:18 · 503 阅读 · 0 评论 -
介绍几个比较出名的编程ACM题库
介绍几个比较出名的编程ACM题库TAGS:ACM, 编程 POSTED BY 0X55AA POSTED ON 八 - 14 - 2011 0 COMMENT几个比较大的在线提交系统(ONLINE JUDGE)里面有大量历年的竞赛题目,注册一个ID,然后用自己熟悉的语言(一般有PASCAL/C /C++/JAVA)写好源代码提交即可,会实时返回信息告诉你是否正确。采用黑箱测试,系统里有一套转载 2014-05-25 19:03:46 · 1832 阅读 · 0 评论 -
UVa 1586知识点
1585the score of ``OOXXOXXOOO" is 10 which is calculated by ``1+2+0+0+1+0+0+1+2+3".原创 2014-07-11 19:26:34 · 177 阅读 · 0 评论 -
acm暑期学校第一天 整理
线段树实际上还是称为区间树更好理解一些。 树:是一棵树,而且是一棵二叉树。 线段:树上的每个节点对应于一个线段(还是叫“区间”更容易理解,区间的起点和终点通常为整数) 同一层的节点所代表的区间,相互不会重叠。同一层节点所代表的区间,加起来是个连续的区间。 叶子节点的区间是单位长度,不能再分了。原创 2014-07-14 23:24:58 · 567 阅读 · 0 评论 -
组合数学:贝尔数
Bn是基数为n的集合划分数目。集合S的一个划分是定义为S的两两不相交的非空子集的族,它们的并是S。例如B3 = 5因为3个元素的集合{a, b, c}有5种不同的划分方法:{{a}, {b}, {c}}{{a}, {b, c}}{{b}, {a, c}}{{c}, {a, b}}{{a, b, c}}当3个元素时要原创 2014-11-11 08:58:37 · 795 阅读 · 0 评论 -
算法导论笔记(5)二叉搜索树
二叉查找树简介集合操作search搜索mininum寻找子树的最小key节点maxnum子树最大key节点predecessor前序寻找比此节点小的最大节点succesor后序insert插入delete删除c实现二叉查找树简介二叉查找树(Binary Search Tree),又被称为二叉搜索树。 它是特殊的二叉树:对于二叉树,假设x为二叉树中的任意一个结点,x节点包含关键字k原创 2015-04-08 09:43:46 · 649 阅读 · 0 评论
分享