2020年4月28日

欧几里得算法及其扩展

摘要: 一、欧几里得算法 传统的求最大公约数的方法直接枚举,对于较大的数时间复杂度较高,不符合要求。欧几里得算法,又称辗转相除法,是求最大公约数的算法,可以有效提高算法效率。 辗转相除法基于原理:两个整数的最大公约数等于其中较小的数和两数相除余数的最大公约数。例如,252和105的最大公约数是21( 252 阅读全文

posted @ 2020-04-28 16:48 轻描淡写ぃ 阅读(563) 评论(0) 推荐(0) 编辑

2020年4月26日

组合数相关

摘要: 组合数 1.定义:从n个不同元素中,任取m(m≤n)个元素并成一组,叫做从n个不同元素中取出m个元素的一个组合;从n个不同元素中取出m(m≤n)个元素的所有组合的个数,叫做从n个不同元素中取出m个元素的组合数。 2.公式:在线性写法中被写作C(n,m)。 组合数的计算公式为(由排列数公式得到) 3. 阅读全文

posted @ 2020-04-26 19:06 轻描淡写ぃ 阅读(426) 评论(0) 推荐(0) 编辑

2020年4月24日

poj2689 Prime Distance(思维+筛素数)

摘要: Prime Distance Time Limit: 1000MS Memory Limit: 65536K Description The branch of mathematics called number theory is about properties of numbers. One 阅读全文

posted @ 2020-04-24 16:03 轻描淡写ぃ 阅读(121) 评论(0) 推荐(0) 编辑

2020年4月22日

一本通1624樱花(数学+唯一分解定理)

摘要: #10202. 「一本通 6.2 练习 5」樱花 题意很简单,就是求给你的那个式子中(x,y)的解得数量。 但是做起来没那么容易了,基本思路是这样的: 需要想办法对式子进行整理,进而得到可以解决问题的式子。 首先把原式进行通分,得到 进行十字相乘,得到 n!(x+y)=xy ; 移项,得n!(x+y 阅读全文

posted @ 2020-04-22 17:52 轻描淡写ぃ 阅读(391) 评论(0) 推荐(0) 编辑

2020年4月18日

CF33C Wonderful Randomized Sum(贪心+思维)

摘要: 题意:给你一个数字序列,你可以选择它的一些前缀或后缀(可能是空的)中的每个数字都乘以-1。前缀和后缀可以交叉也可以为空。问能得到的最大序列和是多少。 假设这个序列分成了三部分:A(前缀)+B(重合)+C(后缀) S(序列的和)=A+B+C。重合部分,乘以-1两次,值不变,就相当于没有操作。而-(A+ 阅读全文

posted @ 2020-04-18 17:37 轻描淡写ぃ 阅读(173) 评论(0) 推荐(0) 编辑

2020年4月17日

HNOI 2008越狱(组合数学(乘法原理)+快速幂)

摘要: HNOI 2008越狱 Input output Example Hint 本题要是没有点数学知识还真不太好做。首先我们想相邻的有都少种,但是这样想很明显太复杂了,可以想反面,如果算出不相邻的,用总数减去不相邻的就可以了。 总数由乘法原理可知是mn,(乘法原理,第一个位置有m种选择,第二个位置也是m 阅读全文

posted @ 2020-04-17 11:05 轻描淡写ぃ 阅读(142) 评论(0) 推荐(0) 编辑

2020年4月15日

唯一分解定理

摘要: 唯一分解定理又称为算数基本定理,基本内容是: 每个大于1的自然数,要么本身就是质数,要么可以写为2个或以上的质数的积,而且这些质因子按大小排列之后,写法仅有一种方式。 用另一种方法表示就是: 对于任何一个大于1的正整数,都存在一个标准的分解式: N=p1^a1 * p2^a2*···*pn^an;( 阅读全文

posted @ 2020-04-15 12:22 轻描淡写ぃ 阅读(2535) 评论(0) 推荐(0) 编辑

2020年4月14日

UVa 11827 Maximum GCD(gcd+读入技巧)

摘要: UVa 11827 Maximum GCD 题意:给你一组数,让你求任意两组数的最大公约数,找出其中最大的最大公约数。数据不大直接暴力,就是读入太坑了,不知道数据是长什么样。 上代码: 直接利用C++特性来读入: 1 #include<iostream> 2 #include<sstream> 3 阅读全文

posted @ 2020-04-14 11:20 轻描淡写ぃ 阅读(251) 评论(0) 推荐(0) 编辑

2020年4月13日

素数筛法讲解

摘要: 首先看一看判断素数的方法,就是看一个数n能否被2~n-1内的数整除,如果能整除就不是素数,反之则是,直接上优化后的代码: 1 bool isprime(int x) 2 { 3 for(int i=2;i<=sqrt(x);i++) 4 { 5 if(x%i==0) 6 return false; 阅读全文

posted @ 2020-04-13 17:56 轻描淡写ぃ 阅读(1354) 评论(0) 推荐(0) 编辑

2020年4月11日

差分讲解

摘要: 差分应用到解决题目中,主要是区间修改的问题。 如果让你给区间[l,r]中的每一个数都加上x,一般情况下会直接暴力循环将每一个数都加上x。 就像这样: 1 void update(int l,int r,int x) 2 { 3 for(int i=l;i<=r;i++) 4 { 5 a[i]+=x; 阅读全文

posted @ 2020-04-11 19:20 轻描淡写ぃ 阅读(316) 评论(0) 推荐(0) 编辑

导航