![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
胡凡算法笔记
只努力的程序猿
临渊羡鱼,不如退而结网
展开
-
算法笔记上机指南———动规
最大连续子序列 数据num(N) 令d(i)表示num(i)最为末尾的连续序列的最大和。 转移方程 d(i)=max(d(i-1)+num(i),num(i)) 有一点需要注意,递归数组的最后未必是以num(N)最大最大 核心代码 dp[0] = num[0]; for (int i = 1; i <N; i++) { if (dp[i - 1] + num[i] > num[i]) { dp[i] = dp[i - 1] + num[i]; //indx[i] = in原创 2020-07-01 18:43:14 · 157 阅读 · 0 评论 -
组合数计算及其求模
- 前言 关于n!的一个小问题 -如何求n!有多个p; 最直接的 int cal(int n, int p) //计算n!有多少个p { int ans = 0; for (int i = 2; i <= n; i++) { int temp = i; while (temp%p == 0) ans++, temp /= p; } return ans; } 当n>...原创 2019-10-04 15:58:24 · 221 阅读 · 0 评论 -
求逆元的两种方法
引论 解释一下什么是逆元 (此处指的是乘法逆元),如果有三个数a,b,m(m>1);有a*b=1(mod n),我们就说a与b互为模m的逆元,我们可以记住a=1/b(mod n)或者b=1/a(mod n)。通俗的说,如果两个整数的乘积模m后1,就称它们互为m的逆元。、 为什么要求逆元? 一般的我们对于ab(mod n)=((a mod n)(b mod n)) mod n,但是换到除法就...原创 2019-09-27 11:25:56 · 912 阅读 · 0 评论