摘要: 声明:本文中的变量若非特别说明,均指整数。 定义: 扩展欧几里得算法是用于解决一类形如求解a*x+b*y=c中(x,y),或者形如a*x≡b(mod c)中x的问题。 引理(裴蜀定理): 不定方程a*x+b*y=gcd(a,b)(x,y为变量)一定有无数个解。 证明: 先证明该方程有解。 将欧几里得 阅读全文
posted @ 2017-08-24 21:56 青石巷 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目描述 给定一个长度为n的排列,要求输出该排列的字典序名次(1,2,3,...,n的名次为1)。 输入输出格式 输入格式: 第一行一个数n,表示排列长度。 第二行n个数,用空格分隔,表示一个长度为n的排列。 输出格式: 一个数,表示该排列的字典序名次。由于答案可能很大,请输出答案对1e9 阅读全文
posted @ 2017-08-24 19:21 青石巷 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 定义: 线性筛是在O(nlog(log(n)))的Eratosthenes筛法基础上改进得到的一种算法,可以O(n)求得1~n中的所有素数,因此经常在一些与素数有关的问题中用于预处理。对线性筛进行扩展之后,又可以计算出几乎所有的积性函数。 PS:素数密度据一位老师所说是O(n/ln(n))的。 原理 阅读全文
posted @ 2017-08-24 18:49 青石巷 阅读(552) 评论(0) 推荐(0) 编辑
摘要: 题目背景 无 题目描述 给定一长度为n的动态序列,请编写一种数据结构,要求支持m次操作,包括查询序列中一闭区间中所有数的GCD,与对一闭区间中所有数加上或减去一个值。 输入输出格式 输入格式: 第1行两个数n,m,表示序列长度和操作次数。 第2行n个数ai,表示给定序列。 第3行至第m+2行,每行3 阅读全文
posted @ 2017-08-24 16:51 青石巷 阅读(765) 评论(0) 推荐(0) 编辑