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

怎样做网站快照简述网站推广的方式

怎样做网站快照,简述网站推广的方式,如何开发医院,网页设计重庆求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/509364.html

相关文章:

  • 如何本地搭建自己的网站科技网站建设公司
  • 做网站和软件的团队大地seo
  • 做网站需要什么工具小升初最好的补课机构排行榜
  • 网站建设通查询东莞网站到首页排名
  • 做暖暖视频网站观看百度代运营公司
  • SFDA的网站建设是什么seo网站优化课程
  • 不能上传图片到网站seo销售是做什么的
  • 杭州哪个网站建设最好杭州seo网站建设
  • 做网站要在工商备案吗seo外包费用
  • 男女做姿抽插视频网站想要推广页
  • Java电商网站开发资源网站推广优化c重庆
  • 北京泵网站建设免费网站推广群发软件
  • 用html做的网站加背景音乐二维码推广赚佣金平台
  • iis 临时网站app拉新怎么对接渠道
  • 做网站用什么工具好唐山百度搜索排名优化
  • 网站建设参考网站的说明媒体营销
  • 腾讯客服平台seo搜索引擎优化策略
  • 招财猫网站怎么做鄞州seo整站优化服务
  • 做网站的桔子什么seo搜索引擎优化到底是什么
  • 如何c2c网站建设株洲seo优化哪家好
  • 佛山做网站永网seo舆情优化
  • 影视头像logo设计百度关键词搜索引擎排名优化
  • 网站改版的原因西安seo黑
  • 湛江做网站服务热线免费推客推广平台
  • 做网站学哪个语言最好域名排名查询
  • 机关门户网站 建设 方案阿里云网站搭建
  • 怎么做淘宝 天猫京东网店的网站直通车推广技巧
  • 手机触屏网站开发十大舆情网站
  • 江阴市网站建设最新营销模式有哪些
  • 上饶市网站建设公司如何引流推广