L先生与数列 组合数
来源:互联网 发布:php的转义字符有哪些 编辑:程序博客网 时间:2024/04/29 19:31
Description
L先生又遇到了一道数学难题,你能帮助他吗。
在连续自然数数列列[a, b]之间选择n个不重复的数,要求它们的和为奇数,有多少种选法?
Input
多组测试数据,处理到文件结束。(测试数据数量<50)
每行有一个测试例,分别是a、b和n,且满足0<=b-a<=40,0
Output
对于每个测试例,输出一行代表其具有的组合个数。
Sample Input
11 19 2
11 19 3
Sample Output
20
40
Hint
题意
题解:
固定奇数1.3.5…..然后求组合数 不满足的不算
AC代码
#include <cstdio>#include <set>#include <algorithm>using namespace std;#define ll long longll C[40][40];void set_init(){ for (int i = 0; i<40;++i) C[i][0] = C[i][i] = 1; for (int i = 2; i < 40; ++i){ for (int j = 1; j < i; ++j){ C[i][j] = C[i-1][j]+C[i-1][j-1]; } }}int main(){ set_init(); ll a,b,n; while (~scanf("%lld%lld%lld",&a,&b,&n)){ ll d = b-a+1; if (n > d) printf("0\n"); else if (b < a) printf("0\n"); else { ll na = (b-a+1)/2; ll nb = (b-a+1)/2; if (!(a&1)&&!(b&1)) nb+=1; if ((a&1)&&(b&1)) na+=1; ll ans = 0; for (ll i = 1; i <= n; i+=2){ if (i > na||n-i<0) break; ans+=C[na][i]*C[nb][n-i]; } printf("%lld\n",ans); } } return 0;}
阅读全文
0 0
- L先生与数列 组合数
- L先生与 【组合数打表】
- L先生与解密
- L先生与阶乘
- L先生
- hdu5490 Simple Matrix 组合数与数列多次求和
- ZJCOJ: L先生与质数V4(数论)
- ZJCOJ L先生与质数V3/V4 (Meisell-Lehmer算法)
- ZJCOJ L先生与质数V3/V4 (Meisell-Lehmer算法)
- L先生第二天
- 数列组合数求和( HDU5490 Simple Matrix)
- 排列数与组合数
- L先生与晨跑(找规律 先手后手博弈)
- 1489: L先生与质数V4(二分+大区间求素数模板)
- 1489: L先生与质数V4(二分+大区间求素数模板)
- 1489: L先生与质数V4(二分+大区间求素数模板)
- 组合数与母函数
- 多层循环与组合数
- 左偏树总结
- java 去按钮边框及焦点
- 进制转换-zxc
- 使用OpenMP实现并行归并排序(Report)
- 入手两个基础排序算法
- L先生与数列 组合数
- Android常用控件
- 2017年上海金马五校程序设计竞赛 A : STEED Cards 暴力
- JSP的9大内置对象和作用域
- Virtualenv和Virtualenvwrapper的配置使用
- Tensorflow的padding操作
- iOS 成员变量,实例变量,属性变量的区别,联系
- 算法 排序算法之选择排序--直接选择排序和堆排序
- c++中如何实现一个不能被继承的类