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

AcWing 885:求组合数 I ← 数位DP求解中常用

【题目来源】
https://www.acwing.com/problem/content/887/

【题目描述】
给定 n 组询问,每组询问给定两个整数 a,b,请你输出 C(a,b) mod (10^9+7) 的值。

【输入格式】
第一行包含整数 n。
接下来 n 行,每行包含一组 a 和 b。

【输出格式】
共 n 行,每行输出一个询问的解。​​​​​​​

【输入样例】
3
3 1
5 3
2 2

【输出样例】
3
10
1

【数据范围】
1≤n≤10000,
1≤b≤a≤2000​​​​​​​

【算法分析】
C(n, m) 在数学中通常表示‌组合数‌,即从 n 个不同元素中选取 m 个元素的组合数目,计算公式为:n! / (m! * (n-m)!)

● 组合数在“数位DP”中经常用到。

● 超时(TLE)的写法 → 解决方法是先预处理出来 f[i][j],然后调用即可。

#include <bits/stdc++.h>
using namespace std;const int MOD=1e9+7;
const int N=2e3+5;
int f[N][N];int main() {int n;cin>>n;while(n--) {int a,b;cin>>a>>b;for(int i=0; i<N; i++) {for(int j=0; j<=i; j++) {if(j==0) f[i][j]=1;else f[i][j]=(f[i-1][j-1]+f[i-1][j])%MOD;}}cout<<f[a][b]<<endl;}return 0;
}


【算法代码】

#include <bits/stdc++.h>
using namespace std;const int MOD=1e9+7;
const int N=2e3+5;
int f[N][N];int main() {int n;cin>>n;for(int i=0; i<N; i++) {for(int j=0; j<=i; j++) {if(j==0) f[i][j]=1;else f[i][j]=(f[i-1][j-1]+f[i-1][j])%MOD;}}while(n--) {int a,b;cin>>a>>b;cout<<f[a][b]<<endl;}return 0;
}/*
in:
3
3 1
5 3
2 2out:
3
10
1
*/





【参考文献】
https://www.acwing.com/blog/content/406/
https://www.acwing.com/solution/content/87578/


 

http://www.jsqmd.com/news/117421/

相关文章:

  • 5、Windows 7 实用操作指南
  • Linly-Talker资源占用测试:消费级显卡能否流畅运行
  • 提升客户体验:Linly-Talker在智能客服中的实践
  • 6、Windows Media Player使用指南:畅享多媒体世界
  • 如何用Linly-Talker打造专属虚拟主播?完整教程来了
  • 7、电脑多媒体与文件操作全攻略
  • 数字人安全隐私保障:Linly-Talker本地化部署优势
  • 手把手教你训练个性化语音:Linly-Talker语音克隆教程
  • Linly-Talker用户案例分享:某银行数字客服上线实录
  • 8、Windows 7 文件操作与用户账户管理全攻略
  • Linly-Talker表情驱动原理:基于深度学习的微表情模拟
  • 9、Windows 7 网络与笔记本功能使用指南
  • 18、Windows Vista 离线文件使用指南
  • 免费观影背后的广告陷阱解析
  • 短视频创作者福音:Linly-Talker批量生成口播内容
  • Linly-Talker如何防止DDoS攻击影响服务可用性?
  • Day 45 图像数据与显存
  • 19、Windows Vista 网络协作与文件同步冲突处理指南
  • 10、Windows 7 使用指南:文件同步、网络连接与网页浏览
  • 使用阿里的EasyExcel根据模板进行Excel导出
  • 零基础也能做数字人?Linly-Talker让你快速上手
  • 20、Windows Meeting Space与Vista安全设置全解析
  • Linly-Talker容器化部署:Docker镜像快速启动教程
  • 集成LLM+TTS+ASR,Linly-Talker实现全栈数字人对话
  • 从文本到生动表情:Linly-Talker如何实现情感化表达
  • Linly-Talker镜像提供资源用量仪表盘监控
  • Linly-Talker支持按部门分配算力资源吗?
  • 21、Windows Vista 安全设置全解析
  • Linly-Talker实战教程:如何用大模型生成高拟真数字人
  • 惯性与惯性力公式的推导