hdu5894hannnnah_j’s Biological Test
来源:互联网 发布:毕业设计单片机 编辑:程序博客网 时间:2024/05/23 18:40
链接:http://acm.hdu.edu.cn/showproblem.php?pid=5894
题意:有n个座位(环),求m个人坐上去且两个人相隔至少k个空座位的方案数。
分析:先确定1个人的位置,那么剩下的就是C(n-m*k-1,m-1),那么有n*C(n-m*k-1,m-1)种方案然后/m去掉重复的。
代码:
#include<map>#include<set>#include<cmath>#include<queue>#include<bitset>#include<math.h>#include<vector>#include<string>#include<stdio.h>#include<cstring>#include<iostream>#include<algorithm>#pragma comment(linker, "/STACK:102400000,102400000")using namespace std;const int N=1000010;const int M=50010;const int mod=1000000007;const int MOD1=1000000007;const int MOD2=1000000009;const double EPS=0.00000001;typedef long long ll;const ll MOD=1000000007;const int INF=1000000010;const ll MAX=1ll<<55;const double eps=1e-5;const double inf=~0u>>1;const double pi=acos(-1.0);typedef double db;typedef unsigned int uint;typedef unsigned long long ull;ll inv[N];ll C(ll n,ll m) { if (m>n) return 0; ll ret=1; m=min(m,n-m); for (int i=1;i<=m;i++) (ret*=(n-i+1)*inv[i]%MOD)%=MOD; return ret;}int main(){ int t; ll n,m,k; inv[1]=1ll; for (int i=2;i<N;i++) inv[i]=(MOD-MOD/i)*inv[MOD%i]%MOD; scanf("%d", &t); while (t--) { scanf("%lld%lld%lld", &n, &m, &k); if (m==1) printf("%lld\n", n); else printf("%lld\n", (C(n-m*k-1,m-1)*n%MOD)*inv[m]%MOD); } return 0;}
0 0
- hdu5894hannnnah_j’s Biological Test
- hdu5894hannnnah_j’s Biological Test+组合数学+Lucas
- hannnnah_j’s Biological Test
- hdu5894 hannnnah_j’s Biological Test
- hannnnah_j’s Biological Test HDU
- hannnnah_j’s Biological Test HDU
- hannnnah_j’s Biological Test HDU
- HDU5894-hannnnah_j’s Biological Test【组合数学】
- hdu 5894 hannnnah_j’s Biological Test 排列组合
- hdu5894 hannnnah_j’s Biological Test(数学)
- hdu 5894 hannnnah_j’s Biological Test
- hannnnah_j’s Biological Test (lucas定理 )
- 沈阳网赛1003 HDU 5894 hannnnah_j’s Biological Test
- HDU5894-hannnnah_j’s Biological Test(组合数学+Lucas定理)
- HDU 5894 hannnnah_j’s Biological Test (组合数学)
- HDU 5894 hannnnah_j’s Biological Test(组合数学)
- hdu5894 hannnnah_j’s Biological Test(组合数学)
- HDU 5894 hannnnah_j’s Biological Test 组合数取模
- java多线程例子1
- hdu5776
- 好读书不求甚解(一)Java多线程编程核心技术
- 二维线段树
- 前端们,gulp该用起来了,简单的demo入门——gulp系列(一)
- hdu5894hannnnah_j’s Biological Test
- 一篇不错的讲解Java异常的文章
- hdu1671
- LeNet-5手写数字识别——可训练参数的求解详解
- 基本的Xml文件读取工具类(通用)
- startup.bat详解
- javascript中的innerHTML是什么意思,怎么个用法?
- 划分树求第K大数
- JAVA EE---Servlet 学习第四天