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 }

为什么不能算出来取模而用逆元呢

因为我们还要通过该结果递推其他的项,直接取模可能造成后面的数不整除前面的项

如果只算一项,取模是可以的

或者只取模一次,那么可以直接对结果取模

算逆元时一定要考虑式子对逆元的整除性

最新文章

  1. Struts2文件上传(基于表单的文件上传)
  2. Windows 下对目录建立软链接
  3. Tomcat的startup.bat一闪而过问题的解决
  4. C#中修改Dll文件 (反编译后重新编译)
  5. JNI基础概念以及原理-2016.01.11
  6. 谈谈JavaScript事件
  7. JavaScript 三种创建对象的方法
  8. Oracle LOB
  9. OpenCV学习 2:播放AVI视频
  10. Android执行时ART载入类和方法的过程分析
  11. MATLAB命令大全+注释小结
  12. admin-handlers.go
  13. GIt -- Window下配置 git
  14. pip3 freeze导出依赖包 --Python3
  15. Android入门(一) IDEA上创建Android应用之helloworld
  16. 一个判断I2C总线通信异常原因的方法
  17. 示例:pm_multiple_models 匹配——形状匹配
  18. yaml格式
  19. &lt;A&gt;标签锚标记
  20. 20145332 拓展:注入shellcode实验

热门文章

  1. 阿里云RDS物理备份恢复到本地
  2. 细数JS中实用且强大的操作符&amp;运算符
  3. uni-app 获取地址位置
  4. uni-app开发经验分享十五: uni-app 蓝牙打印功能
  5. ORB-SLAM2-tracking线程
  6. 深圳某小公司面试题:AQS是什么?公平锁和非公平锁?ReentrantLock?
  7. ES入门及安装软件
  8. Mybatis报错:Could not find resource mybatis-conf.xml
  9. Vim中的swp文件,在vim非正常退出时,再次编辑会出问题
  10. 算法总结篇---AC自动机