![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM--模板
布呗之路
每个人都有不同的路,所以每个人都会孤独。
展开
-
组合数模板
#include<cstdio>#define LL long longusing namespace std;int N, M, P;LL quickM(LL a, LL b){ LL ans = 1, base = a; while(b) { if(b&1) ans = ans*base%P; base = base原创 2017-10-21 23:56:35 · 290 阅读 · 0 评论 -
快速幂模板
这里写代码片LL P(LL a,LL b,LL mod){ LL ans=1,temp=a; temp%=mod;b%=mod; while(b) { if(b&1) ans=((ans%mod)*temp%mod)%mod; temp=(temp%mod)*(temp%mod)%mod; b>>=1; }原创 2017-10-22 11:58:50 · 246 阅读 · 0 评论 -
从一个点到另一个点的非单调路径(直接给结果)
///给你一个n*m的矩阵,求解从坐标(a,b)到(n,m)的方法数(非降的单调路数);ans=c(m+n-a-b,n-a));(最左上角角标为(1,1)) ///推广从一点(x1,y1)到(x2,y2)的路径数(非降的单调路径数) /// 普通的数据刷刷的就过去了, ///如果数据量较大可以用Lucas=模板走一波(或者用唯一分解定理走一波))原创 2017-11-06 09:58:02 · 1837 阅读 · 0 评论 -
计算1->n中数字x出现的次数
LL Count(LL n,LL x) { LL cnt=0,k; for (LL i=1;k=n/i;i*=10) { int high=k/10; if (x==0) { if (high) high--; else break; } cn原创 2017-12-10 23:32:31 · 953 阅读 · 0 评论 -
GCD
///用于计算a和b的最大公约数gcd和最小公倍数lcm LL gcd(LL a,LL b){return b==0?a:gcd(a,b%a);} LL lcm(LL a,LL b) {return a*b/gcd(a,b);}///用于计算ax==b(mod m)的一个特解,如果没有特解返回m本身 LL gcd_ex(LL a,LL b,LL &x,LL &y) { if(b==原创 2017-10-28 12:46:14 · 501 阅读 · 0 评论 -
阶乘算法
includeint main () { int ans=0; int n,five=5; scanf(“%d”,&n); while(n>five) { ans+=n/five; five*=5; } printf(“%d\n”,ans); return 0; }原创 2017-10-21 01:12:19 · 2024 阅读 · 0 评论