随笔分类 -  算法

摘要:基数排序 基数排序(Radix Sort)是桶排序的扩展,它的基本思想是:将整数按位数切割成不同的数字,然后按每个位数分别比较。 具体做法是:将所有待比较数值统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后, 数列就变成一个有 阅读全文
posted @ 2020-11-23 20:57 Cherish486 阅读(382) 评论(0) 推荐(0)
摘要:n皇后问题描述 在一个n×n的国际象棋棋盘上放置n个皇后,使得她们中任意两个之间都不会互相“攻击”,即任意两个皇后不可以放在同一行、同一列、同一斜线上。 输入:n 输出:有多少种满足条件的放置方法。 回溯法 解空间 利用约束条件,一维数组即可。 x[i] 表示第i行的皇后的列数为x[i]。 约束条件 阅读全文
posted @ 2020-11-17 20:18 Cherish486 阅读(141) 评论(0) 推荐(0)
摘要:时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K Special Judge, 64bit IO Format: %lld 题目描述 Eddy likes to play cards game since there are always lot 阅读全文
posted @ 2020-10-12 17:15 Cherish486 阅读(37) 评论(0) 推荐(0)
摘要:Problem Description people 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 inte 阅读全文
posted @ 2020-09-14 21:34 Cherish486 阅读(57) 评论(0) 推荐(0)
摘要:欧拉通路的判定 有向图:图连通,有一个顶点出度大入度1,有一个顶点入度大出度1,其余都是入度等于出度。 无向图:图连通,有两个奇数度顶点,其余都为偶数度顶点。 欧拉回路的判定 有向图:图连通,所有顶点入度等于出度。 无向图:图连通,所有顶点都是偶数度。 struct Edge { int v,nex 阅读全文
posted @ 2019-11-07 20:51 Cherish486 阅读(95) 评论(0) 推荐(0)
摘要:RMQ RMQ算法,是一个快速求区间最值的离线算法,预处理时间复杂度O(n*log(n)),查询O(1)。 概念:RMQ(Range... 阅读全文
posted @ 2019-11-07 19:55 Cherish486 阅读(60) 评论(0) 推荐(0)
摘要:版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ... 阅读全文
posted @ 2019-09-27 20:41 Cherish486 阅读(23) 评论(0) 推荐(0)
摘要:LCA 最近公共祖先 Tarjan(离线)算法的基本思路及其算法实现 首先是最近公共祖先的概念(什么是最近公共祖先?): 在一棵没有环的树上,每个节点肯定有其父亲节点和祖先节点,而最近公共祖先,就是两个节点在这棵树上深度最大的公共的祖先节点。 换句话说,就是两个点在这棵树上距离最近的公共祖先节点。 阅读全文
posted @ 2019-09-16 20:10 Cherish486 阅读(21) 评论(0) 推荐(0)
摘要:转 趣写算法系列之--匈牙利算法 2013年07月18日 13:39:59 Dark_Scope 阅读数 100344 版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/Dark_Scope 阅读全文
posted @ 2019-08-18 10:28 Cherish486 阅读(34) 评论(0) 推荐(0)
摘要:原 乘法逆元详解【费马小定理+扩展欧几里得算法】 2018年... 阅读全文
posted @ 2019-08-15 09:15 Cherish486 阅读(52) 评论(0) 推荐(0)
摘要:三种情况: 1.有限小数:小数点后面的数除以10n (n为小数位数)。 2.纯循环小数(类似0.44444…):循环节除以(10n-... 阅读全文
posted @ 2019-03-15 12:10 Cherish486 阅读(248) 评论(0) 推荐(0)
摘要:ϕ(x):1到x中与x互质的数的个数. 欧拉函数公式: ϕ(x)=x(1-1/a1)(1-1/a2)…(1-1/an). ... 阅读全文
posted @ 2019-03-14 20:22 Cherish486 阅读(17) 评论(0) 推荐(0)
摘要:定义:费马小定理(Fermat Theory)是数论中的一个重要定理,其内容为: 假如p是质数,且Gcd(a,p)=1,那么 a(p... 阅读全文
posted @ 2019-01-17 00:55 Cherish486 阅读(358) 评论(0) 推荐(0)
摘要:二分 概念:二分,是二分查找的简称,又叫折半查找,是一种用于快速查找的工具,也可以说是一种技巧与思想。 前提:数组必须是顺序结构。 ... 阅读全文
posted @ 2018-11-28 17:06 Cherish486 阅读(205) 评论(0) 推荐(0)
摘要:sort函数的调用需要头文件#include 从小到大排: 例如:a[50]={2,3,5,1,-1},想让它按照从小到大的顺序排列... 阅读全文
posted @ 2018-11-28 16:19 Cherish486 阅读(188) 评论(0) 推荐(0)
摘要:#GCD 原理:类似辗转求余 两种方法: 1.循环 int main(){ int a,b; scanf("%d%d",... 阅读全文
posted @ 2018-11-23 00:35 Cherish486 阅读(40) 评论(0) 推荐(0)
摘要:#快速幂 作用:快速求幂,这个快体现在哪些方面呢?举个例子,2^5 朴素算法就是将2连乘5次,需要计算5次,而用快速幂的话,就是将5拆成二进制,5=(101)2,那么就相当于是 2的1乘2的平方乘2的0乘2的一次方乘2的1乘2的0次方,计算了三次,所以快速幂更快。 int fust_pow(int 阅读全文
posted @ 2018-11-23 00:29 Cherish486 阅读(40) 评论(0) 推荐(0)
摘要:#快速乘 原理:由于计算机底层设计的原因,做加法往往比乘法快的多,因此将乘法转换为加法计算将会大大提高(大数,比较小的数也没必要)乘法运算的速度,除此之外,当我们计算a*b%mod的时候,往往较大的数计算a*b会超出long long int的范围,这个时候使用快速乘法方法也能解决上述问题. 快速乘 阅读全文
posted @ 2018-11-23 00:16 Cherish486 阅读(110) 评论(0) 推荐(0)
摘要:#前缀和 公式:ans[i]=ans[i-1]+a[i] 例题: 描述:已知两个正整数a和b,求在a和b之间(包含a和b)的所有整数的十进制表示中1出现的次数。 输入:多组数据(不超过100000组),每组数据2个整数a,b(1<=a,b<=1000000). 输出:每组答案占一行。 题目理解:如果 阅读全文
posted @ 2018-11-23 00:03 Cherish486 阅读(34) 评论(0) 推荐(0)
摘要:#傻瓜方法 思路:按照素数的定义,除了1和它本身没有其他的因数,就是素数。 #include<stdio.h> int main() { int i,n; while(scanf("%d",&n)!=EOF) { for(i=2;i<n;i++) if(n%i==n) break; if(i==n) 阅读全文
posted @ 2018-11-22 23:33 Cherish486 阅读(339) 评论(0) 推荐(0)