求第n行杨辉三角(n很大,取模
2024-08-27 16:58:53
1 #include <iostream>
2 #include <cstdio>
3
4 using namespace std;
5 typedef long long ll;
6 const int maxn=1000;
7 ll mod;int n;
8 ll c[100000],A[100000];
9 void init(){
10 A[1]=1;
11 ll p=mod;
12 //线性求逆元
13 for(int i=2;i<=n;++i){
14 A[i] = ((p-(p / i)) * A[p % i]%p+p)%p;
15 }
16 c[0]=1;
17 printf("1->");
18 for(int i=1;i<=n;++i){
19 //先c[i-1]*(n-i+1),否则c[i-1]可能不整除i
20 c[i]=(((c[i-1]*(n-i+1)%p)*A[i]))%p;
21 printf("%lld->",c[i]);
22 }
23 printf("\n");
24 }
25 int main(){
26 while(~scanf("%d",&n)){
27 mod=1e9+7;
28 init();
29 }
30 return 0;
31 }
为什么不能算出来取模而用逆元呢
因为我们还要通过该结果递推其他的项,直接取模可能造成后面的数不整除前面的项
如果只算一项,取模是可以的
或者只取模一次,那么可以直接对结果取模
算逆元时一定要考虑式子对逆元的整除性
最新文章
- Struts2文件上传(基于表单的文件上传)
- Windows 下对目录建立软链接
- Tomcat的startup.bat一闪而过问题的解决
- C#中修改Dll文件 (反编译后重新编译)
- JNI基础概念以及原理-2016.01.11
- 谈谈JavaScript事件
- JavaScript 三种创建对象的方法
- Oracle LOB
- OpenCV学习 2:播放AVI视频
- Android执行时ART载入类和方法的过程分析
- MATLAB命令大全+注释小结
- admin-handlers.go
- GIt -- Window下配置 git
- pip3 freeze导出依赖包 --Python3
- Android入门(一) IDEA上创建Android应用之helloworld
- 一个判断I2C总线通信异常原因的方法
- 示例:pm_multiple_models 匹配——形状匹配
- yaml格式
- <;A>;标签锚标记
- 20145332 拓展:注入shellcode实验