[CodeVs1515]跳(lucas定理+费马小定理+乘法逆元)

嘿嘿嘿好久没写数学题了,偶尔看到一道写一写。。。

题目大意:一个(n+1)*(m+1)【0<=n, m<=10^12,n*m<=10^12】的矩阵,C(0,0)=1,C(x,y)=C(x-1,y)+C(x,y-1),求从0,0走到n,m路上最小权值(即为前面的C)和mod 10^9+7。

看到这个C(x,y)=C(x-1,y)+C(x,y-1),第一反应就是杨辉三角,所以这个矩阵其实就是一个由组合数组成的矩阵,第i行第j列的权值为C(i+j,j)【注意这个矩形起点是(0,0)】。

我们可以发现(0,0)~(n,0)和(0,0)~(0,m)上都是1,所以我们肯定选择走这条路,而且要走长的那条,不过我们只走(0,0)~(n-1,0)或(0,0)~(0,m-1),因为(n,0)或(0,m)接下来要算到,反正没有太大影响,那么这一段的权值和为max(n,m)。接下来就是剩下的那一段了,显然往上和往左走肯定是亏的,所以我们继续往终点走,而这一段的路径则为C(n+m+i-1,i)【0≤i≤min(n,m)】的和。看不懂的话看看样例,如下图:

上图的1和3就是C(1+2+0-1,0)和C(1+2+1-1,1)的值,其实只要把矩阵顺时针旋转45°就是杨辉三角了,而C(n+m+i-1,i)【0≤i≤min(n,m)】的和就是C(n+m+1,min(n,m)),证明略。所以这个矩阵的最短路径则为max(n,m)+C(n+m+1,min(n,m))。这题数据范围是比较猎奇的,但是毋庸置疑的是暴力求组合数取模肯定是不行的啊,这里我们就要用到lucas定理了,lucas定理即C(a,b)mod p=C(a/p,b/p)*C(a mod p,b mod p),然后就用费马小定理+乘法逆元求一下组合数就行辣,然后这题就写完了,代码很短也很容易理解。

const
  p=1000000007;
var
  n,m,t:int64;

function qp(a,b:int64):int64;//快速幂
var
  y,t:int64;
begin
  y:=a mod p;t:=1;
  while b>0 do
  begin
    if b and 1=1 then t:=t*y mod p;
    y:=y*y mod p;
    b:=b>>1;
  end;
  exit(t mod p);
end;

function C(a,b:int64):int64;//费马小定理+乘法逆元
var
  i:longint;
  aa,bb:int64;
begin
  if b>a then exit(0);
  if b>a-b then b:=a-b;
  aa:=1;bb:=1;
  for i:=1 to b do
  begin
    aa:=aa*(a-i+1) mod p;
    bb:=bb*i mod p;
  end;
  exit(aa*qp(bb,p-2) mod p);
end;

function lucas(a,b:int64):int64;//lucas定理
begin
  exit(C(a div p,b div p)*C(a mod p,b mod p)mod p);
end;

begin
  readln(n,m);
  if n>m then
  begin
    t:=n;n:=m;m:=t;
  end;
  writeln((m+lucas(n+m+1,n))mod p);
end.

时间: 2024-10-05 05:32:14

[CodeVs1515]跳(lucas定理+费马小定理+乘法逆元)的相关文章

【Lucas定理/费马小定理/中国剩余定理/扩展欧几里得】[BZOJ 1951] 古代猪文

[Description] 求 [Solution] 容易得到, 所以,重点在怎么求 如果是p-1是个质数,我们可以用sqrt(n)的时间枚举所有d,用Lucas定理分别计算求和即可. 但是我们发现p-1=2*3*4679*35617,并不是一个质数,所以Lucas定理不能用了吗?并不,我们可以算出这个合式分别对2.3.4679.35617的模值,写出四个同余方程,再用孙子定理求解即可.注意特判g==p的情况,此时费马小定理不成立,ans=0. [Code] #include<cmath> #

[BZOJ 1951][Sdoi2010]古代猪文(Lucas+CRT+费马小定理)

Description “在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心……” ——选自猪王国民歌 很久很久以前,在山的那边海的那边的某片风水宝地曾经存在过一个猪王国.猪王国地理位置偏僻,实施的是适应当时社会的自给自足的庄园经济,很少与外界联系,商贸活动就更少了.因此也很少有其他动物知道这样一个王国. 猪王国虽然不大,但是土地肥沃,屋舍俨然.如果一定要拿什么与之相比的话,那就只能是东晋陶渊明笔下的大家想象中的桃花源了.猪

素数判定(米勒测试定理-费马小定理+快速乘)

1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<cstdlib> 5 #include<algorithm> 6 #include<vector> 7 #include<ctime> 8 #define llg long long 9 llg i,j,k,x,n,m; 10 using namespace std; 11 ll

SDOI 2010--古代猪文(Lucas算法&amp;费马小定理&amp;中国剩余定理)

发现几乎每次数论题洛谷总是让我TLE一个点.... 附图: 最后那个点优化了很久终于过了.... 题意 iPig在大肥猪学校图书馆中查阅资料,得知远古时期猪文文字总个数为N.当然,一种语言如果字数很多,字典也相应会很大.当时的猪王国国王考虑到如果修一本字典,规模有可能远远超过康熙字典,花费的猪力.物力将难以估量.故考虑再三没有进行这一项劳猪伤财之举.当然,猪王国的文字后来随着历史变迁逐渐进行了简化,去掉了一些不常用的字. iPig打算研究古时某个朝代的猪文文字.根据相关文献记载,那个朝代流传的猪

数论初步(费马小定理) - Happy 2004

Description Consider a positive integer X,and let S be the sum of all positive integer divisors of 2004^X. Your job is to determine S modulo 29 (the rest of the division of S by 29). Take X = 1 for an example. The positive integer divisors of 2004^1

CodeForces 300C Beautiful Numbers(乘法逆元/费马小定理+组合数公式+快速幂)

C. Beautiful Numbers time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Vitaly is a very weird man. He's got two favorite digits a and b. Vitaly calls a positive integer good, if the decimal

BZOJ_[HNOI2008]_Cards_(置换+Burnside引理+乘法逆元+费马小定理+快速幂)

描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1004 共n个卡片,染成r,b,g三种颜色,每种颜色的个数有规定.给出一些置换,可以由置换得到的染色方案视为等价的,求等价类计数. 分析 给出置换求等价类计数,用Burnside引理:等价类计数=(每一个置换不动点的和)/置换数.(不知道的建议去看白书) 其中不动点是指一个染色方案经过置换以后染色与之前完全相同. 1.求不动点个数. 不动点的话同一个循环内的每一个点的颜色必须相同(否则不同颜色

『基础同余和费马小定理』

同余 同余是数论中一个重要的概念,若整数\(a\)与整数\(b\)除以正整数\(m\)的余数相等,则称\(a\),\(b\)再模\(m\)意义下同余,记为\(a\equiv b(mod\ m)\)或\(m|(a-b)\). 同余基础性质 \(1.\)\(a≡a (mod\ m)\),自反性 \(2.\)若\(a≡b (mod\ m)\),则\(b≡a (mod\ m)\),对称性 \(3.\)若\(a≡b (mod\ m)\),\(b≡c (mod\ m)\),则\(a≡c (mod\ m)\)

【BZOJ1951】【SDOI2010】古代猪文 Lucas定理、中国剩余定理、exgcd、费马小定理

Description “在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心……” ——选自猪王国民歌 很久很久以前,在山的那边海的那边的某片风水宝地曾经存在过一个猪王国.猪王国地理位置偏僻,实施的是适应当时社会的自给自足的庄园经济,很少与外界联系,商贸活动就更少了.因此也很少有其他动物知道这样一个王国. 猪王国虽然不大,但是土地肥沃,屋舍俨然.如果一定要拿什么与之相比的话,那就只能是东晋陶渊明笔下的大家想象中的桃花源了.猪