- 博客(5)
- 资源 (2)
- 收藏
- 关注
原创 C++ 大整数类(支持上亿个位的整数 '+'、'-'、'*'、'/'、'%'、'^' 计算实现)
C++ 大整数类(支持上亿个位的整数 '+'、'-'、'*'、'/'、'%'、'^' 计算实现) 设计这个类的初衷,来自一次面试,第一个加数是1后面接一千个0,第二个加数是2后面接一千个0,描述这两个数相加的过程,而 int 类型的范围是-2147483648~2147483647,只能接9个0,unsigned long long int 类型也只能保存最大 184467440737095516...
2019-04-18 11:50:48
2932
1
原创 九宫格拼图,避免不可还原
对于九宫格拼图,如果随机打乱的话,有50%的概率出现不可还原的情况。 可以采用求逆序数的方法避免不可还原的情况。 逆序数:即在一个数列中,按照从小到大的顺序排列则是顺序,如果有两个数违反了这一规则,即左边的数大于右边的数,那么这两个数就是一个逆序。 例: 0, 3, 1, 2 这个数列中,(0,3),(0,1),(0,2)都是顺序,(3,1)是一个逆序,(3,2)是一个逆序,(1,2)是顺序,只有...
2018-12-02 19:25:35
12285
14
原创 整数转换二进制, 高效使用位运算
整数转换二进制, 高效使用位运算 将十进制数整数转换二进制的方法很多,但是很少有看到使用位运算的方法,我现在分享的方法便是利用C语言能够对位运算操作高效的特点。对于C语言来说,一个整数在内存里面就是以二进制的形式存储的,所以没有必要再将其经过一系列运算转换成二进制的形式,只要将整数在内存中的二进制表示输出即可。 递归调用方法: // 这里使用无符号数作为形参,是为了避免有符号数右移时补符号位 ...
2018-11-04 17:08:49
1699
原创 回溯算法:0-1背包问题
回溯算法非常适合用递归来实现,在实现的过程中,剪枝操作是提高回溯效率的一种技巧。利用剪枝,我们并不需要穷举搜索所有的情况,从而提高搜索效率。 回溯算法的核心思想就是: 1:递归之前「做选择」; 2:递归之后「撤销选择」。 以下实例为0-1背包问题,背包承重极限是一定的,每个物体的价值都不一样, 1、MaxWeight 函数不计算物体价值,挑选出背包承重极限以内最大承重的组合; 2、WeightValue 函数则在满足背包承重极限的前提下,挑选出总价值最高的组合。 #include <iostream
2021-04-01 22:55:14
807
转载 暴力匹配、KMP、BM、Sunday算法,从入门到理解到彻底理解
转自:https://blog.csdn.net/gao506440410/article/details/81812163 看了好久的KMP没看懂,但是碰见大佬的博客,突然顿悟,给大家分享一下。 原文:https://blog.csdn.net/v_july_v/article/details/7041827 &nbs...
2019-04-09 22:05:40
654
Puzzle_Crystal.zip
2018-12-02
C++ 大整数类(支持上亿个位的整数 '+'、'-'、'*'、'/'、'%'、'^' 计算实现)
2019-04-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅