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

组合数(费马小定理, 快速幂)

给定 n 组询问,每组询问给定两个整数 a,b,请你输出 Cbamod(109+7)的值。

输入格式

第一行包含整数 n。

接下来 n 行,每行包含一组 a 和 b。

输出格式

共 n 行,每行输出一个询问的解。

数据范围

1≤n≤10000,
1≤b≤a≤105

输入样例:
3
3 1
5 3
2 2
输出样例:
3
10
1

使用快速幂求解a!,用费马小定理求解后面的逆元

代码:

#include <iostream>using namespace std;typedef long long ll;const int N = 1e5 + 10, mod = 1e9 + 7;ll n, a, b;
ll fact[N], ifact[N];ll qmi(ll a, ll b) {ll res = 1;while (b) {if (b & 1) res = res * a % mod;a = a * a % mod;b >>= 1;}return res;
}void init() {fact[0] = 1;ifact[0] = 1;for (int i = 1; i < N; i ++ ) {fact[i] = fact[i - 1] * i % mod;ifact[i] = ifact[i - 1] * qmi(i, mod - 2) % mod;}
}int main() {init();cin >> n;while (n -- ) {cin >> a >> b;cout << (fact[a] * ifact[b]) % mod * ifact[a - b] % mod << endl;}
}

http://www.lryc.cn/news/334105.html

相关文章:

  • VMware Esxi安装群辉系统
  • arm交叉编译器工具
  • Dajngo -- 表单
  • NIO基础知识
  • C语言正则表达式 regnext regreplace regreplaceAll
  • 使用aspose相关包将excel转成pdf 并导出
  • 按关键字搜索商品API接口搜索关键字,显示商品总数,标题,图片,优惠价参数等
  • 网络基础知识入门
  • D435i发布的话题学习
  • Springboot启动过程
  • 网络安全之命令注入
  • 使用GDAL进行简单的坐标系转换
  • 【AIGC调研系列】AI大模型结合迁移学习进行微调的应用
  • 低代码革新:软件开发的未来潜力与创新路径探索
  • AI智能校色解决方案,专业级画质提升
  • 面试算法-148-轮转数组
  • Linux——静态库 共享库
  • 基于Spring Boot+Vue的在线拍卖系统
  • Unity构建详解(6)——SBP的Bundle写操作生成
  • 2024新版PHP在线客服系统多商户AI智能在线客服系统源码机器人自动回复即时通讯聊天系统源码PC+H5
  • 使用GPT需要注意的事项
  • 学习人工智能:为何PyTorch深度学习框架不可或缺
  • Python基于Tkinter的加法游戏
  • 基于Springboot4S店车辆管理系统
  • 深入浅出 -- 系统架构之分布式架构
  • 6. Z 字形变换(Java)
  • 【Linux入门】用户的基本指令
  • 3.9 Python格式化字符串
  • Linux驱动学习:从Linux主机nfs共享文件到uboot
  • Linux下场景模拟--cpu、内存打满测试