算法学习笔记
文章平均质量分 76
Marilynmontu
能为自己的梦想锋芒毕露,那也是一种不合群的勇敢。
展开
-
算法学习——二分法拓展
上一篇提到的都是整数情况下的二分查询问题,事实上二分法的应用远远不止此,下面介绍几个相关的例子。例1 :如何计算2–√2\sqrt{2}的近似值? 对  f(x)=x2 f(x)=x2\ f(x)=x^{2}来说,在 x∈[1,2] x∈[1,2]\ x\in[1,2] 的范围内, f(x)&原创 2018-09-04 20:16:27 · 464 阅读 · 0 评论 -
算法学习——二分查找
如何在一个严格递增序列A中找出给定的数x。最直接的办法是:线性扫描序列中的所有元素,如果当前元素恰好为x,则表明查找成功;如果扫描完整个序列都没有发现给定的数x,则表明查找失败,说明序列中不存在数x。这种顺序查找的时间复杂度为O(n)(其中n为序列元素个数),如果需要查询次数不多,则是很好的选择,但是如果有10的5次方个数需要查询,就不太能承受了。 更好的办法是使用二分查找。...原创 2018-09-01 22:40:44 · 471 阅读 · 0 评论 -
算法学习——哈希
散列(hash)是常用的算法思想,一般来说,散列可以浓缩为一句话“将元素通过一个函数转换为整数,使得该整数可以尽量唯一地代表这个元素”。问题 A: 谁是你的潜在朋友 时间限制: 1 Sec 内存限制: 32 MB题目描述 “臭味相投”——这是我们描述朋友时喜欢用的词汇。两个人是朋友通常意味着他们存在着许多共同的兴趣。然而作为一个宅男,你发现自己与他人相互了解的机会 并不太...原创 2018-08-25 22:10:15 · 379 阅读 · 0 评论 -
算法学习——N皇后问题
N皇后问题的两种主要算法是试探回溯法和位运算法。前一种是经典算法,后一种是目前公认的最高效算法,后者比前者效率提高了至少一个数量级。很多问题可以借鉴位运算的思想。问题 D: 八皇后 时间限制: 1 Sec 内存限制: 32 MB题目描述会下国际象棋的人都很清楚:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。如何将8个皇后放在棋盘上(有8 * 8个方格),使它们谁也不能被吃掉!...原创 2018-08-29 14:55:28 · 780 阅读 · 0 评论 -
算法学习——排序(2)
问题 E: Problem B 时间限制: 1 Sec 内存限制: 32 MB题目描述 请写一个程序,对于一个m行m列的(1#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;int main(){ int i, j, k, m; ...原创 2018-08-24 23:08:05 · 532 阅读 · 0 评论 -
算法学习——贪心(2)
贪心策略的题目思路还是挺简单的,重点是要考虑所有情况,只要多练习,还是可以AC的。最近刷题的速度有点下降,主要是还要复习线性代数和概率论等数学课和计算机网络等专业课,想想开学两周的课程设计真是神烦,加油~今天再练习几道~相信自己~问题 D: Repair the Wall 时间限制: 1 Sec 内存限制: 32 MB题目描述Long time ago , Kitty ...原创 2018-08-31 22:00:17 · 261 阅读 · 0 评论 -
算法学习——排序(1)
问题 A: 排序 时间限制: 1 Sec 内存限制: 32 MB题目描述 对输入的n个数进行排序并输出。输入 输入的第一行包括一个整数n(1<=n<=100)。 接下来的一行包括n个整数。输出 可能有多组测试数据,对于每组数据,将排序后的n个整数输出,每个数后面都有一个空格。 每组测试数据的结果占一行。样例输入 5 5 4 3 1 2 样例输出 ...原创 2018-08-24 11:46:12 · 518 阅读 · 1 评论 -
算法学习——字符串问题(2)
后面的题目都比较简单啦,但是博主强迫症发作,想都刷完,也可以给之后刷题的同学一些参照。上一篇字符串匹配时没有用KMP算法,下次单独写一篇记录KMP算法,继续刷接下来五道字符串的题目。问题 E: 字符串去特定字符 时间限制: 1 Sec 内存限制: 32 MB题目描述 输入字符串s和字符c,要求去掉s中所有的c字符,并输出结果。输入 测试数据有多组,每组输入字符串s和字符c。...原创 2018-08-23 16:47:37 · 717 阅读 · 0 评论 -
算法学习——贪心(1)
贪心法是求解一类最优化问题的方法,它总是考虑在当前状况下的局部最优解(或较优的策略),来使全局的结果达到最优(或较优)。显然,如果采用较优而非最优的策略(最优策略可能不存在或者不容易想到),得到的全局结果也无法是最优的。而要获得最优结果,则要求中间的每步策略都是最优的,因此严谨使用贪心法来求解最优化问题需要对采取的策略进行证明。证明的一般思路是使用反证法或数学归纳法,即假设策略不能导致最优...原创 2018-08-30 21:46:34 · 541 阅读 · 0 评论 -
算法学习——字符串问题(1)
问题 A: 字符串连接 时间限制: 1 Sec 内存限制: 32 MB 题目描述 不借用任何字符串库函数实现无冗余地接受两个字符串,然后把它们无冗余的连接起来。输入 每一行包括两个字符串,长度不超过100。输出 可能有多组测试数据,对于每组数据, 不借用任何字符串库函数实现无冗余地接受两个字符串,然后把它们无冗余的连接起来。 输出连接后的字符串。样例输入 abc de...原创 2018-08-23 11:48:17 · 682 阅读 · 0 评论 -
算法学习——递归
分治的全称是“分而治之”,分治法将原问题划分成若干个规模较小而结构与原问题相同或相似的子问题,然后分别解决这些子问题,最后合并子问题的解,即可得到原问题的解。注意,分治法分解出的子问题应当是相互独立、没有交叉的,如果存在两个子问题有相交部分,那么不应当使用分治法解决。从严格的定义上讲,一般把子问题个数为1的情况称为减治,而把子问题个数大于1的情况称为分治,另外,分治法作为一种算法思想,既可以使...原创 2018-08-27 14:37:26 · 524 阅读 · 0 评论 -
算法学习——进制转换问题
本小节主要解决一个问题,对两种不同的进制,应该如何进行相互转换呢? 对于一个P进制数,如果要转换为Q进制,分为两步:将P进制数x转换为十进制数y将十进制数y转换为Q进制数z问题 A: 又一版 A+B 时间限制: 1 Sec 内存限制: 32 MB 题目描述 输入两个不超过整型定义的非负10进制整数A和B(&amp;amp;amp;lt;=231-1),输出A+B的m (1 &amp;amp;amp;lt; m &amp;amp;原创 2018-07-27 22:47:07 · 945 阅读 · 0 评论 -
算法学习——日期处理问题
问题 A: 日期差值 时间限制: 1 Sec 内存限制: 32 MB 题目描述 有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天。输入 有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD输出 每组数据输出一行,即日期差值样例输入 20130101 20130105 样例输出 5 解题思路 这种求日期之间相差天数...原创 2018-07-26 16:46:48 · 1521 阅读 · 0 评论 -
哈夫曼编码原理及实现代码
1)初始化:根据给定的n个权值 ,构造n棵只有一个根结点的二叉树, n个权值分别是这些二叉树根结点的权。2)找最小树:在F中选取两棵根结点树值最小的树作为左、右子树,构造一颗新的二叉树,置新二叉树根的权值为左、右子树根结点权值之和;3)删除与加入:从F中删除这两颗树,并将新树加入F;判断:重复 2) 和3),直到F中只含一颗树为止,此时得到的这颗二叉树就是哈夫曼树。...原创 2019-02-27 14:58:31 · 8053 阅读 · 4 评论