![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
Serendipity486
菜鸟coder一名
展开
-
基数排序
基数排序基数排序(Radix Sort)是桶排序的扩展,它的基本思想是:将整数按位数切割成不同的数字,然后按每个位数分别比较。具体做法是:将所有待比较数值统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后, 数列就变成一个有序序列。ps:基数排序只可以应用于整数。具体过程如图所示:模板代码:/* * 获取数组a中最大值 * * 参数说明: * a -- 数组 * n -- 数组长度 */int原创 2020-11-23 20:56:57 · 166 阅读 · 0 评论 -
n皇后问题(回溯法+二进制优化)
n皇后问题描述在一个n×n的国际象棋棋盘上放置n个皇后,使得她们中任意两个之间都不会互相“攻击”,即任意两个皇后不可以放在同一行、同一列、同一斜线上。输入:n输出:有多少种满足条件的放置方法。回溯法解空间利用约束条件,一维数组即可。x[i] 表示第i行的皇后的列数为x[i]。约束条件不同行:数组x的下标保证是不重复的。不同列:x[i] ! = x[j] (i<=n,j<=n,i != j)不同对角线:abs(x[i]-x[j]) ! = abs(i-j)对角线有两原创 2020-11-17 20:17:58 · 663 阅读 · 0 评论 -
Shuffle Cards 解题报告(STL模板 rope)
时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288KSpecial Judge, 64bit IO Format: %lld题目描述Eddy likes to play cards game since there are always lots of randomness in the game. For most of the cards game, the very first step in the game is shuff...原创 2020-10-12 17:15:06 · 107 阅读 · 1 评论 -
Find Integer 解题报告(费马大定理+勾股数)
Problem Descriptionpeople in USSS love math very much, and there is a famous math problem .give you two integers n,a,you are required to find 2 integers b,c such that an+bn=cn.Inputone line contains one integer T;(1≤T≤1000000)next T lines contains two原创 2020-09-14 21:33:50 · 178 阅读 · 1 评论 -
快速乘
#快速乘原理:由于计算机底层设计的原因,做加法往往比乘法快的多,因此将乘法转换为加法计算将会大大提高(大数,比较小的数也没必要)乘法运算的速度,除此之外,当我们计算a*b%mod的时候,往往较大的数计算a*b会超出long long int的范围,这个时候使用快速乘法方法也能解决上述问题. 快速乘法的原理就是利用乘法分配率来将a*b转化为多个式子相加的形式求解(注意这时使用乘法分配率的时候后...原创 2018-11-23 00:15:32 · 86 阅读 · 0 评论 -
快速幂
#快速幂作用:快速求幂,这个快体现在哪些方面呢?举个例子,2^5朴素算法就是将2连乘5次,需要计算5次,而用快速幂的话,就是将5拆成二进制,5=(101)2,那么就相当于是 2的1乘2的平方乘2的0乘2的一次方乘2的1乘2的0次方,计算了三次,所以快速幂更快。int fust_pow(int a,int b,int c)//相当于a^b%c{ int ans=q; a%=c...原创 2018-11-23 00:28:48 · 88 阅读 · 0 评论 -
GCD(求最大公约数)
#GCD原理:类似辗转求余两种方法:1.循环int main(){ int a,b; scanf("%d%d",&a,&b); while(b) { int mid=a; a=b; b=mid%b; } printf("%d\n",a); return 0;}2....原创 2018-11-23 00:34:45 · 451 阅读 · 0 评论 -
二分
二分概念:二分,是二分查找的简称,又叫折半查找,是一种用于快速查找的工具,也可以说是一种技巧与思想。前提:数组必须是顺序结构。举例:比如{1,22,54,78,100},我想找到22的序号(第几大的数),那么进行二分,首先这个数组的下限是l=1,上限是r=5,那么其中间值序号就为mid=(l+r)/2=3,然后比较序号为3的数和22的大小,结果是22小,所以改变上限,r=mid-1=2,然后...原创 2018-11-28 17:05:30 · 125 阅读 · 0 评论 -
费马小定理
定义:费马小定理(Fermat Theory)是数论中的一个重要定理,其内容为: 假如p是质数,且Gcd(a,p)=1,那么 a(p-1) ≡1(mod p)。即:假如a是整数,p是质数,且a,p互质(即两者只有一个公约数1),那么a的(p-1)次方除以p的余数恒等于1。题目:给定一个方程式f(x)=5x13+13x5+kax,给定一个非负整数k,求能不能找到一个尽量小的非负整数a,使得上述方程...原创 2019-01-17 00:55:12 · 4025 阅读 · 0 评论 -
乘法逆元详解【费马小定理+扩展欧几里得算法】
原 乘法逆元详解【费马小定理+扩展欧几里得算法】 ...转载 2019-08-15 09:14:36 · 147 阅读 · 0 评论 -
二分图-匈牙利算法
原 趣写算法系列之--匈牙利算法 ...转载 2019-08-18 10:27:39 · 66 阅读 · 0 评论 -
LCA最近公共祖先
LCA 最近公共祖先Tarjan(离线)算法的基本思路及其算法实现 小广告:METO CODE 安溪一中信息学在线评测系统(OJ) //由于这是第一篇博客..有点瑕疵...转载 2019-09-16 20:09:52 · 108 阅读 · 0 评论 -
算法 --- KMP
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本...转载 2019-09-27 20:41:13 · 128 阅读 · 0 评论 -
RMQ - 求区间最值
RMQRMQ算法,是一个快速求区间最值的离线算法,预处理时间复杂度O(n*log(n)),查询O(1)。概念:RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在i,j之间的最小/大值。预处理设A[i]是要求区间最值的数列,F[i, j]表示从第i...原创 2019-11-07 19:55:11 · 169 阅读 · 0 评论