![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM_算法
小白菜小青菜
平凡的脚步也可以走出伟大的行程!
展开
-
南阳理工oj 题目85 有趣的数 Cantor数表
有趣的数描述 把分数按下面的办法排成一个数表。 1/1 1/2 1/3 1/4….. 2/1 2/2 2/3…. 3/1 3/2 …. 4/1….. ……… 我们以z字型方法给上表的每项编号。特定方法:第一项是1/1,然后是1/2、2/1、3/1、2/2、1/3、1/4、2/3……。编程输入项号N(1<=N<=100000),输出表中第N项。输入 第一行有一个整数m(0<m<=10原创 2017-05-28 15:40:22 · 531 阅读 · 0 评论 -
素数打表模板
pr数组用来存素数,bo数组用来对是否为素数进行标记int pr[10010],bo[100000]={0};int num=0;void primes(){ for (int i=2;i<=10000;i++) { if(!bo[i]) pr[++num]=i; for (int j=1;j<=num && pr[j]*原创 2017-11-26 13:14:21 · 180 阅读 · 0 评论 -
HDU 5104 Primes Problem(素数打表)
Primes ProblemTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3614 Accepted Submission(s): 1629Problem Description Given a number n, please原创 2017-11-26 13:12:48 · 271 阅读 · 0 评论 -
位运算
(一)按位与& (1)去一个数的指定位 n=1010 1100; n=n&0000 1111; n=0000 1100; (2)使一个数的指定位置为0 n=1010 1100; n=n&1111原创 2017-06-08 22:31:29 · 199 阅读 · 0 评论 -
HDU 3763 C D(二分)
C DTime Limit: 12000/6000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1090 Accepted Submission(s): 480Problem Description Jack and Jill have decided to sel原创 2017-11-18 17:01:12 · 195 阅读 · 0 评论 -
错排公式
**全错排:**n封信放入n个信封,要求全部放错,共有多少种放法,记n个元素的错排总数为f(n)方法一: 某人写了n封信和n个信封,如果所有的信都装错了信封。求所有的信都装错信封,共有多少种不同情况。 当N=1和2时,易得解~,假设F(N-1)和F(N-2)已经得到,重点分析下面的情况: 1.当有N封信的时候,前面N-1封信可以有N-1或者 N-2封错装。 2.前者,对于每一种错装原创 2017-08-07 11:31:43 · 327 阅读 · 0 评论 -
除法逆元入门
对于m=(a/b)(mod p)问题 由于除法不能用同余定理,我们需要将除法转换成乘法 ( a / b ) % p =a * inv ( b , p ) %p =( a%p * inv ( b , p )%p ) %p接下来就是乘法求逆元了, 可以看博客链接 乘法逆元数论乘法逆元扩展欧几里得算法 要求a,n互为素数,存在唯一解代码部分int extgcd(int a, int b, in原创 2017-08-19 20:50:15 · 1596 阅读 · 0 评论 -
乘法逆元数论篇
乘法逆元数论篇【易懂教学】 引入篇乘法逆元较多用于求解除法取模问题 例如:(a/b)%m时,可以将其转换为(a%(b×m))/b,但这样求解的过程依然涉及到除法,所以我们应当避免除法的直接计算。这时候就需要用到我们要讲的乘法逆元。 可以使用逆元将除法转换为乘法:假设b存在乘法逆元,即与m互质(充要条件)。 设c是b的逆元,即 b×c≡1(mod m) 那么有 a/b=(a/b)×1=原创 2017-08-19 20:40:36 · 1973 阅读 · 2 评论 -
HDU 6103 Kirinriki
HDU 6103 2017ACM暑期多校联合训练 - Team 6 1008 Kirinriki题目链接Problem Description We define the distance of two strings A and B with same length n is disA,B=∑i=0n−1|Ai−Bn−1−i| The difference between the two c原创 2017-08-11 11:31:24 · 345 阅读 · 0 评论 -
树状数组知识入门
树状数组(Binary Indexed Tree(BIT), Fenwick Tree)是一个查询和修改复杂度都为log(n)的数据结构。主要用于查询任意两位之间的所有元素之和,但是每次只能修改一个元素的值;经过简单修改可以在log(n)的复杂度下进行范围修改。 如百度上所讲 :在解题过程中,我们有时需要维护一个数组的前缀和 S[i]=A[1]+A[2]+…+A[i]。但是不难发现,如果我们修改了原创 2017-07-16 20:28:13 · 300 阅读 · 0 评论 -
南阳理工oj 题目116 士兵杀敌(二)树状数组
士兵杀敌(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:5 描述 南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的。小工是南将军手下的军师,南将军经常想知道第m号到第n号士兵的总杀敌数,请你帮助小工来回答南将军吧。南将军的某次询问之后士兵i可能又杀敌q人,之后南将军再询问的时候,需要考虑到新增的杀敌数。输入 只有一组测试数据 第一行是两个整数N原创 2017-07-16 20:36:40 · 998 阅读 · 0 评论 -
快速排序 分治法
快速排序快速排序采用了分治法,由于快排效率在同为o(N*logN)的几种排序方法中效率较高,因此经常被采用。快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。实现思想: 1. 先从数列中取出一个数作为标记。 2. 然后进行分区,将比这个数大的全放在右边,小于或等于它的全放在它的左边。原创 2017-07-19 10:24:41 · 723 阅读 · 0 评论 -
归并排序
归并排序详解归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 在讲归并排序前,先看一看合并排序吧。 合并排序顾名思义就是合并,将讲两个数组合并到一个数组的排序方式。简单的讲就是对两个已经进行排序的数组进行合并到第三个数组。比较两个数组的元素的大小,将小的一个录入第三个数组,一次一次比较。当一个数组没有元素后,直接将另原创 2017-07-17 12:12:13 · 184 阅读 · 0 评论 -
索引顺序表查找算法(分块查找)
算法背景有时候,可能会遇到这样的表:整个表中的元素未必有序,但若划分为若干块后,每一块中的所有元素均小于(或大于)其后面块中的所有元素。我们称这种为分块有序。对于分块有序表的查找 首先,我们需要先建立一个索引表,索引表中为每一块都设置–索引项,每一个索引项都包含两个内容: 该块的起始地址 该块中最大(或最小)的元素显然,索引表是按关键字递增或递减次序排列的。如下图所示:原创 2017-12-14 14:50:37 · 3103 阅读 · 0 评论