2020年2月4日

摘要: 快速乘法取模 当要求两个长整形取模时,如果直接两个长整形相乘就很容易超出长整形的范围。 乘法的本质就是加法!这时候我们就可以用一遍遍加法来模拟求模,比如一百乘1000取模二,就是一千个一百取模2相加。这种直接模拟法还是8太行。为了精益求精 有了快速乘! 如同快速幂取模,快速乘从名字上就可以看出和快速 阅读全文
posted @ 2020-02-04 19:02 JohnFllora 阅读(197) 评论(0) 推荐(0)

2020年2月2日

摘要: 字符串哈希个人理解:字符串哈希就是将字符串中一个个字符用自己定义的哈希公式转化为一个个数字,因为哈希算法公式的特殊性自己取质数,很难有重复的转化数字。所以自己所取的数定义的公式就是哈希算法的关键。 基本哈希给定一个字符串S=s1s2s3…sn,对字母s[i],我们规定f(i)=s[i]-‘a’+1。 阅读全文
posted @ 2020-02-02 21:41 JohnFllora 阅读(225) 评论(0) 推荐(0)
摘要: 个人理解定义:栈中元素都是单调关系的栈数据结构。 模拟单调栈 7 2 1 4 第一次为7 栈为空 7入栈 此时栈内 7 第二次为2 栈顶为7 7>2 2入栈 此时栈内 7 2 第三次为1 栈顶为2 2>1 1入栈 此时栈内 7 2 1 第四次为4 栈首为1 1<4 1出栈 继续往前比 栈首为2 2出 阅读全文
posted @ 2020-02-02 20:28 JohnFllora 阅读(103) 评论(0) 推荐(0)

2020年1月23日

摘要: 并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题。 举一个例子 假设有A B C D E五个人 A ,D两人感冒了。 A和B玩传染给了 B ,B和C玩传染给了C D和E玩传染到了 E E只和D接触过,所以D E是一种同类型感冒。 B和A接触染了感冒,C和B接触有了感冒,所以A B 阅读全文
posted @ 2020-01-23 18:42 JohnFllora 阅读(144) 评论(0) 推荐(1)
摘要: 归并排序 个人认为归并排序和快速排序有相似之处,都是从大数组一步一步化为小数组再分步解决。 归并排序的思想其实很简单,总共分为两步,分与治。 分指的就是将一个大数组一步一步变小,总体化小再化小,如下图本是长度为8的数组分为两个长度为4的数组再一步一步分下去直到8个数字。 核心代码 int mid=( 阅读全文
posted @ 2020-01-23 18:22 JohnFllora 阅读(135) 评论(0) 推荐(1)

2020年1月21日

摘要: 十五号到二十号C++方面学习了输入输出语句 初学还是感觉陌生没有scanf printf语句好用但是看到洛谷书上面写着大部分人还是C++中使用SCANF printf语句。对于C++的栈和队列函数感觉对栈和队列还是不太熟悉只知其然不知其所以然。 题目做了XUPT-ACM 新生寒假训 的题集感觉思维方 阅读全文
posted @ 2020-01-21 17:07 JohnFllora 阅读(123) 评论(0) 推荐(0)

2020年1月18日

摘要: 尺取 顾名思义就是像尺子一样去截取一段数据判断是否满足题目要求想要的条件。 通常靠采用下标保存左右端点,然后根据需求改变下标移动左右端点,来避免进行重复运算,最终来获得答案。 尺取并不是万能,有些情况可以用,有些情况不可以用,要仔细审题判断是否能用尺取算法。 如下题 http://120.78.16 阅读全文
posted @ 2020-01-18 14:27 JohnFllora 阅读(418) 评论(0) 推荐(0)

2020年1月15日

摘要: 普通快速幂 暴力模拟法 #include "stdio.h" long long int fun(long long int a,long long int b) { long long int s=1; while(b) { s=s*a; b--; } return s; } main() { l 阅读全文
posted @ 2020-01-15 20:50 JohnFllora 阅读(139) 评论(0) 推荐(0)