组合数学
ThreeWater-
这个作者很懒,什么都没留下…
展开
-
hdu5894组合数学
其答案是C(n-mk-1,m-1)/m*n 考虑一张桌子先坐上一个人,那么就只剩下n-m*k-1个位置能做人,且第一个人有n个位置可以选那么方案数就是n*C(n-mk-1,m-1) ,因为这里的人是无差别的。比如有3个人,假设他们坐的位置是(2,5,8),那么,(2,5,8),(8,2,5)是重复计算的,还要除以m。#include<iostream> #include<cstdio>原创 2016-09-19 21:45:56 · 308 阅读 · 0 评论 -
组合数打表
void CalcComb() { c[0][0] = c[1][0] = c[1][1] = 1; for (int i = 2; i < MAX_N; ++i) { c[i][0] = c[i][i] = 1; for (int j = 1; j < i; ++j) c[i][j] = (c[i - 1][j] +原创 2016-10-07 18:29:28 · 538 阅读 · 0 评论 -
组合数取模
const ll p=1e9+7; ll n,m,k; ll quick_mod(ll a, ll b) { ll ans = 1; a %= p; while(b) { if(b & 1) { ans = ans * a % p; b--;原创 2016-09-19 19:47:53 · 530 阅读 · 0 评论