"传送门戳我" 首先将n减去所有的Ci,于是是原问题转换为:n个相同的球放入m个不同盒子里,不能为空,求方案数. 根据插空法:n个球,放到m个箱子里去不能为空,也就是有m 1块板子放在n 1个空隙之间 那么组合数求解也就是C(n 1,m 1) 除法求余有误差所以先求分母的逆元,转化为分子 逆元%mo ...
分类:
其他好文 时间:
2020-04-07 18:22:14
阅读次数:
72
893E - Counting Arrays 思路:质因子分解。 对于每个质因子,假设它有k个,那么求把它分配到y个数上的方案数。 相当于把k个小球分配到y个盒子里的方案数。 这个问题可以用隔板法(插空法)解决,要把一段分成y段,需要y-1个隔板,那么有y-1+k个位置,选y-1个位置为隔板,剩下的 ...
分类:
其他好文 时间:
2017-11-24 22:50:10
阅读次数:
134
分组用插板、相邻用捆绑、不邻用插空 分组问题 【例1】 共有10完全相同的球分到7个班里,每个班至少要分到一个球,问有几种不同分法? C(9,6) 【例2】有8个相同的球放到三个不同的盒子里,共有( )种不同方法. A.35 B.28 C.21 D.45 C(10,2) 【例3】15个相同的球放入编 ...
分类:
其他好文 时间:
2016-10-19 13:34:30
阅读次数:
134
传送门:hdu 5894 hannnnah_j’s Biological Test 题目大意:n个座位,m个学生,使每个学生的间隔至少为k个座位 组合中的插空法 思路:每个学生先去掉k个空位间隔,剩下n-k*m;这些空位至少要坐m个学生,n-k*m-1个空,插m-1个门,方法数为:c(n-k*m-1 ...
分类:
其他好文 时间:
2016-09-20 22:29:33
阅读次数:
259
题意:给你1-n,问你最多能安排几个数相邻数字不相邻的位置。解题思路:插空法。解题代码: 1 // File Name: a.cpp 2 // Author: darkdream 3 // Created Time: 2015年04月13日 星期一 00时00分57秒 4 5 #include 6....
分类:
其他好文 时间:
2015-04-13 18:36:41
阅读次数:
113
Topcoder SRM 648 Div1 250
给一个长度为N的"AB"字符串S,S只含有两种字符'A' 或 'B',设pair(i,j)(0=<i<j<N)表示一对 i,j 使得S[i]='A',S[j]='B'。现给定一个K,求字符串S,使得pair(i,j)的个数恰好为K。若不存在,则返回空串。...
分类:
其他好文 时间:
2015-02-03 09:38:17
阅读次数:
156
Topcoder SRM 648 Div2 1000
给一个长度为N的字符串S,S只含有‘A’、'B'、'C'三种元素。给定一个K,要求返回字符串S,使得S中恰好有K对pair(i,j)满足 0=<i<j<N,且 S[i]<S[j]。若不存在,则返回空串。...
分类:
其他好文 时间:
2015-02-03 09:36:18
阅读次数:
234
(常考)错位排列 有N封信和N个信封,每封信都不装在自己信封里的排列种数记作Dn,则 D1=0,D2=1,D3=2,D4=9,D5=44,D6=265 一、相邻问题---捆绑法 不邻问题---插空法 对于某几个元素不相邻的排列问题,可先将...
分类:
其他好文 时间:
2014-10-19 23:26:51
阅读次数:
445
插空法 大组合数取余
#include
#include
using namespace std;
typedef long long LL;
//求整数x和y,使得ax+by=d, 且|x|+|y|最小。其中d=gcd(a,b)
void gcd(LL a, LL b, LL& d, LL& x, LL& y)
{
if(!b)
{
d = a;
x = 1;
y = ...
分类:
其他好文 时间:
2014-09-29 19:37:31
阅读次数:
218
题目来源:Light OJ 1102 Problem Makes Problem
题意:一个整数n分解成k个数相加有多少种方案 数字可以重复
思路:m个苹果放n个盒子有多少方案 允许盒子有空 盒子空对应0 答案是C(n+m-1, n-1)
首先如果不允许有空 答案是C(m-1, n) 插空法m个苹果有m-1个空档 在这m-1个空档里选n-1个分成了n部分 每部分都不是空的
现在允许为空...
分类:
其他好文 时间:
2014-06-04 21:57:03
阅读次数:
166