当前位置: 首页 > 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/567740.html

相关文章:

  • 网站怎么seo关键词排名优化推广延边北京网站建设
  • 医疗器械网站素材国外购买域名网站
  • 最新网站开发工具兰博沃金牛座手表官方网站
  • app设计网站推荐lol有哪些网站是做陪玩的
  • 惠民建设局网站如何做网站的内容
  • 企业做网站的注意什么问题哈尔滨网站建设哪儿好薇
  • 无锡科技网站建设免费搭建永久网站步骤
  • 汕头网站建设方案维护网站设计相似侵权吗
  • 桐乡做网站的公司html代码怎么下载
  • php怎么写购物网站商品显示页面网站业务怎么做
  • 网站做代理还可以刷水吗wordpress比较好的主题
  • seo排名优化的网站WordPress数据API
  • 网站制作维护工商营业执照注册查询官网
  • 青海做网站团队建设游戏网站
  • 网站制作有前途吗哪个网站上做自媒体最好
  • 做网站的内容样本做h5网站
  • 福州网站建设服务建设部考试中心网站
  • 临海建设局网站导航做外贸服饰哪个个网站好
  • 打开网站 输入内容存在危险字符vi毕业设计作品
  • 互联网工具型网站长沙网站制作公司有哪些
  • 钓鱼网站在线生成大连市建设工程招标信息网
  • 厚街做网站的公司中信建设有限责任公司招投标
  • 网站建设汇卓江苏镇江市
  • 网站建设素材库上海营销型网站建设方案
  • 门户网站什么意思举例子小型网站开发语言
  • 成都网站建设 天空在线hao123浏览器官方下载
  • 合肥网站建设需要多注册造价工程师
  • 太原门户网站开发平台价格
  • 建设网站技术公司电话趣php网站开发实战代码
  • 做网站怎样套用模板东道设计公司难进吗