当前位置: 首页 > wzjs >正文

怎样做网站快照网站如何优化关键词排名

怎样做网站快照,网站如何优化关键词排名,福田附近公司做网站建设多少钱,做it软件的网站求C(N, K) % mod,保证mod是质数 问题描述 给你三个整数N,K,mod保证mod是一个质数,求组合数C(N, K) % mod。 输入描述 输入有多组,输入第一行为两个整数T,mod。接下来2 - T 1行,每行输入N, K。 输出描…

求C(N, K) % mod,保证mod是质数

问题描述

给你三个整数N,K,mod保证mod是一个质数,求组合数C(N, K) % mod。

输入描述

输入有多组,输入第一行为两个整数Tmod。接下来2 - T + 1行,每行输入NK

输出描述

每一组输入,输出C(N, K) % mod。

输入示例

9 1000003
6 4
7 5
3 2
10 5
100 50
1000 500
10000 5000
100000 50000
1000000 500000

输出示例

15
21
3
252
440004
175726
737315
781911
375001

c++代码(乘法逆元)

这种方法大致可以处理N,K<= 1000000,mod <= 1000000009。

保证mod为质数,用费马小定理求逆元。

#include<bits/stdc++.h>using namespace std;typedef __int128_t ll;//防止数据溢出long long T, N, K, mod;//保证mod是质数
vector<ll> jiecen;ll fastPow(ll a, ll b, ll mod) {//返回a^b % modif (b == 0) return 1 % mod;if (b == 1) return a % mod;ll k = fastPow(a, b / 2, mod);if (b % 2 == 0) return (k * k) % mod;else return (((k * k) % mod) * a) % mod;
}ll mod_inverse(ll A, ll mod) { return fastPow(A, mod - 2, mod); }//求A % mod 的逆元ll cnk(ll N, ll K, ll mod) { return (jiecen[N] * mod_inverse((jiecen[K] * jiecen[N - K]) % mod, mod)) % mod; }//返回组合数C(N, K) % modint main() {cin >> T >> mod;jiecen = vector<ll>(1000001, 1);//预处理阶乘for (int i = 1; i <= 1000000; i++) jiecen[i] = (jiecen[i - 1] * i) % mod;while(T--) {cin >> N >> K;cout << (long long)cnk(N, K, mod) << endl;}return 0;
}//by wqs

c++代码(卢卡斯定理)

大致可以处理N,K <= 1 * 10^18, mod <= 1000000。

卢卡斯递归过程中可能会出现N < K,这个时候cnk函数要返回0

#include<bits/stdc++.h>using namespace std;typedef __int128_t ll;vector<ll> jiecen;
long long T, N, K, mod;ll fastPow(ll a, ll b, ll mod) {//返回a^b % modif (b == 0) return 1 % mod;if (b == 1) return a % mod;ll k = fastPow(a, b / 2, mod);if (b % 2 == 0) return (k * k) % mod;else return (((k * k) % mod) * a) % mod;
}ll mod_inverse(ll A, ll mod) { return fastPow(A, mod - 2, mod); }//求A % mod 的逆元ll cnk(ll N, ll K, ll mod) { return N >= K ? (jiecen[N] * mod_inverse((jiecen[K] * jiecen[N - K]) % mod, mod)) % mod : 0; }//返回组合数C(N, K) % modll Lucas(ll N, ll K, ll mod) { return K == 0 ? 1 : (cnk(N % mod, K % mod, mod) * Lucas(N / mod, K / mod, mod)) % mod; }int main() {cin >> T >> mod;jiecen = vector<ll>(mod, 1);for (int i = 1; i <= mod - 1; i++) jiecen[i] = (__int128_t(jiecen[i - 1]) * i) % mod;while(T--) {cin >> N >> K;cout << (long long)Lucas(N, K, mod) << endl;}return 0;
}//by wqs
http://www.dtcms.com/wzjs/376058.html

相关文章:

  • 上海做网站哪家公司怎么查询最新网站
  • 湖州十大进出口公司黑龙江seo关键词优化工具
  • 做企业网站要注意什么网站关键词优化软件效果
  • 网站换了域名怎么查网站收录申请
  • 越秀区做网站seo的基本工作内容
  • 怎么找企业做网站网站建设哪个公司好
  • 开源房产网站源码seo推广知识
  • 制作论坛类网站模板郑州网站顾问热狗网
  • wordpress付费注册插件重庆搜索引擎seo
  • 广告设计与制作专业主要学什么廊坊快速优化排名
  • 个人做网站的好处广州公关公司
  • wordpress设置密码我赢网seo优化网站
  • 手机网站后台怎样在百度上发布广告
  • 医院网站建设方案网站宣传推广方案
  • 如何做自己公司的网站seo指的是
  • 手机网站开发费用爱站关键词
  • 微信分销系统多少钱360优化大师官方最新
  • 网站城市分站是怎么做的长沙网站定制公司
  • 做网络作家哪个网站好怎么免费创建网站
  • 怎样用一台电脑做代理 让别的电脑通过代理上几个网站俄罗斯搜索引擎入口 yandex
  • 企业网站建设 信科网络百度竞价推广自己可以做吗
  • 分类网站建设方案河北网站优化公司
  • 深圳营销型网站费用石家庄最新消息今天
  • 如何查网站的备案信息如何搭建网站
  • 做海报去哪个网站找素材比较好呢排名优化系统
  • 广州地区做网站的关键词歌词打印
  • 网站网站建设设计公司seo诊断方案
  • 网站首页做跳转互联网广告公司排名前十
  • 无锡市做企业网站的seo外包靠谱
  • 番禺高端网站建设公司百度账户