卢卡斯
2021/7/13 6:07:56
本文主要是介绍卢卡斯,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
先给一份洛谷模板题的代码
#include<bits/stdc++.h> using namespace std; #define lowbit(x) x&-x #define ll long long #define pii pair<ll,ll> #define dob double #define For(i,s,n) for(ll i = s;i <= n;i++) #define mem0(a) memset(a,0,sizeof a) #define gcd(a,b) __gcd(a,b) #define lcm(a,b) a/gcd(a,b)*b const int N = 2e5+50; const double eps = 1e-6; const ll mod = 998244353; ll p; ll fac[N]; ll f_pow(ll a,ll b){ ll res = 1; while(b){ if(b&1) res = res%p*a%p%p; a = a%p*a%p%p; b>>=1; } return res; } void init(){ fac[0] = 1; for(ll i = 1;i <= p;i++)fac[i] = fac[i-1]*i%p; } ll C(ll n,ll m){ if(m > n) return 0; return fac[n]*f_pow(fac[m],p-2)%p*f_pow(fac[n-m],p-2)%p; } ll Lucas(ll n,ll m){ if(m == 0) return 1; return Lucas(n/p,m/p)*C(n%p,m%p)%p; } int main(){ //ios::sync_with_stdio(false); ll t;cin>>t; while(t--){ ll n,m; cin>>n>>m>>p; init(); cout<<Lucas(n+m,n)<<endl; } return 0; }
这篇关于卢卡斯的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16ShardingSphere 如何完美驾驭分布式事务与 XA 协议?
- 2024-11-16ShardingSphere如何轻松驾驭Seata柔性分布式事务?
- 2024-11-16Maven资料入门指南
- 2024-11-16Maven资料入门教程
- 2024-11-16MyBatis Plus资料:新手入门教程与实践指南
- 2024-11-16MyBatis-Plus资料入门教程:快速上手指南
- 2024-11-16Mybatis资料入门教程:新手必看指南
- 2024-11-16MyBatis资料详解:新手入门与初级实战指南
- 2024-11-16MyBatisPlus资料:初学者入门指南与实用教程
- 2024-11-16MybatisPlus资料详解:初学者入门指南