数论
文章平均质量分 68
Fop_zz
这个作者很懒,什么都没留下…
展开
-
gcd与exgcd
gcd——最大公约数 基本求法为辗转相除(欧几里得算法),有一些优化,网上搜得到就不详细说明了。 辗转相除(x>=y):gcd(x,y)=gcd(y,x%y) 当y=0时,答案为x 代码如下:inline int gcd(int x,int y){ y?gcd(y,x%y):x;}代码极其简短…. 下面是exgcd(扩展欧几里得算法),用来装逼处理ax+by=c=gcd(a,b原创 2017-02-12 13:32:24 · 1312 阅读 · 2 评论 -
vijos1732——能量采集
vijos1732 这题个人感觉。。80分暴力好拿,直接n^2*ln(n)90分我不知道是干嘛的。。我是想不出n^2算法先来说下80分暴力很显然,我们令x,y的最大公约数=t那么这个点到(0,0)上除它以外就有t-1个点于是直接暴力gcd#include<iostream>#include<cstdio>#include<cmath>#include<algorithm>#include<原创 2017-04-10 09:04:21 · 431 阅读 · 0 评论 -
vijos1214——伤心的AsukaNoKaze
vijos1214 题目名字恕我实在不会读刷作业累死来放松一下,刷到了这道挺有意思的题以及这题我现在好像是跑最快的(优越感其实是打表找规律。。当然如果您够强不打表也可以输出暴力的各位n/i,n%i 可以发现,所有n/i相同的i,所构成的n%i序列,为一个公差=n/i的等差数列然后我们就可以把所有n/i的值不止一个的数字全部一起处理出来,剩下的暴力求解显然的是,当i>sqrt(n)时,只有一个所以原创 2017-04-24 14:19:59 · 905 阅读 · 0 评论 -
vijos1420——Valentine’s Seat 组合数学
题目这题是我题目看错了还怎么回事。。我记得题目没有说最右下角要粉色啊??算了不管了,我也不知道为什么只需要考虑右下角是粉色的情况我们可以发现,对于每一行,我们可以发现:1、粉色的座椅必定是从开头开始的一排连续的座椅2、数量大于等于上一排因此我们考虑每一行可以向前扩展pi个位置,最终sigma(pi)=npi>=0所以这个显然可以用隔板法嘛原创 2017-06-19 08:36:14 · 331 阅读 · 0 评论 -
LUOGU1445——没占到1444的愤怒 数学
1445题意:给定n,求1/x+1/y=1/n!的正整数解的数量先对原式分解一下(x+y)/xy=1/n!xy-(x+y)*n!=0(n!)^2+xy-(x+y)*n!=(n!)^2(x-n!)*(y-n!)=(n!)^2因为x,y为任意正整数,所以x-n!和y-n!也可以是任意正整数所以题意转化为->x*y=(n!)^2那么我们对n!分解质因数原创 2017-06-21 17:18:14 · 771 阅读 · 1 评论 -
BZOJ2142 礼物 EXlucas
全场最佳...毒瘤题一眼得出公式:C(n,sum)*C(sum,a[1])*C(sum-a[1],a[2])*....然而数据范围n显然可以用lucas定理算,但是模数tmd不一定是个质数于是需要用到ex_lucas......把p拆成若干个质因子幂乘积的形式,然后对于每一个质因子幂次求解,最后中国剩余定理乘起来即可具体过程:1、拆得到底数q原创 2017-10-24 20:55:21 · 591 阅读 · 0 评论