(组合数取模, 数论)2017"百度之星"程序设计大赛
来源:互联网 发布:信义安所见乎翻译 编辑:程序博客网 时间:2024/06/05 04:45
2017”百度之星”程序设计大赛 - 初赛(B) 1001 Chess
思路
- 结果就是 C(MAX, MIN) % mod, MAX为n, m中的较大值, MIN为n, m中较小值.
- 其中要做的就是组合数取模, 见文章组合数取模
代码:
#include <bits/stdc++.h>using namespace std;#define LL long longconst LL p = 1e9+7;const int SIZE = 1e3+5;LL n, m;LL quick_mod(LL a, LL b) { LL ans = 1; a %= p; while(b) { if(b & 1) { ans = ans * a % p; b--; } b >>= 1; a = a * a % p; } return ans; } LL C(LL n, LL m) { if(m > n) return 0; LL ans = 1; for(int i=1; i<=m; i++) { LL a = (n + i - m) % p; LL b = i % p; ans = ans * (a * quick_mod(b, p-2) % p) % p; } return ans; } LL Lucas(LL n, LL m) { if(m == 0) return 1; return C(n % p, m % p) * Lucas(n / p, m / p) % p; } int main(int argc, char const *argv[]){ int t; scanf("%d", &t); while (t--) { scanf("%I64d %I64d", &n, &m); LL MAX = max(n, m); LL MIN = min(min(n, m), MAX-min(n, m)); printf("%I64d\n", Lucas(MAX, MIN)); } return 0;}
阅读全文
0 0
- (组合数取模, 数论)2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 【2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- Pyhon基础:Monkey Patch(猴子补丁)
- 2.2 按钮类控件的使用
- python入门(十五):正则表达式
- 2.3 图片类控件的使用
- Kotlin 中的操作符重载汇总表 与 可见性修饰符总结
- (组合数取模, 数论)2017"百度之星"程序设计大赛
- HTML中让段落自动空两格
- sc2017新高二&高一模拟赛5 总结
- 28. Implement strStr()
- 快捷键设置
- 关于类加载的一些分析总结
- Jenkins: Change Workspaces and Build Directory Locations
- 5043. 【NOI2017模拟4.4】保持平衡
- ssh项目中ajax与json之二级下拉菜单级联操作