![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排列组合
文章平均质量分 57
Lazines_by
好吧,我要工作了
展开
-
错排运用
错排:就是类似于将1 ~ n的数放在1 ~ n的位置上,要求每个数都不能放在于自己相同的位置上;错排公式:符合错排的种类f[ n ] = (n - 1) *( f[ n - 1] + f[n - 2]);推导过程:当n个编号元素放在n个编号位置,元素编号与位置编号各不对应的方法数用D(n)表示,那么D(n-1)就表示n-1个编号元素放在n-1个编号位置,各不对应的方法数,其它类原创 2017-02-14 20:07:42 · 268 阅读 · 0 评论 -
CRB and Candies (组合的LCM)
组合数的lcm:C(n,0) ,C(n,1),C(n,2)……C(n,n)的lcm为1,2,……,n,n+1的lcm除以n+1,其中1--(n + 1)的lcm可以考虑是每一个质数的最大幂,只有当单独一个数形成数的时候,幂最大。#includeusing namespace std;typedef long long ll;typedef pair P;#define原创 2017-08-23 14:27:58 · 370 阅读 · 0 评论 -
hdu 5894 (组合)
得到公式为:n * C(n - 1- m * k,m - 1) * n / m,记得特判一下m == 1即一个人的情况。#include#include#include#include#include#include#include#include#includeusing namespace std;const int maxn = 20 + 5;#define原创 2017-08-14 20:12:46 · 205 阅读 · 0 评论 -
Codeforces785D (组合数的逆元)
题意:给出一些括号的字符串,然后求删除里面的一些字符使得字符变成RSBS的类型,RSBS的类型为(),(()),((())).思路:有一个公式: 我们枚举每一个左括号用到它的情况就是C(x,x + y - 1),x为它的左边的左括号个数,y为它的右边的右括号个数。PS:这次学会了阶乘的逆元打表方式,#include原创 2017-08-04 20:20:31 · 292 阅读 · 0 评论 -
1^x + 2 ^ x + 3 ^x + …… + n^x
1^5+2^5+3^5+……+n^5=1*C(1,n)+31*C(2,n)+180*C(3,n)+390*C(4,n)+360*C(5,n)+120*C(6,n)求1^5+2^5+3^5+…+n^5.首先写出和式的前6项即1^5=1 2^5=32 3^5=243 4^5=1024 5^5=3125 6^5=7776再求出相邻两数之差,得31 211 781 2101 465原创 2017-06-04 15:42:35 · 1470 阅读 · 0 评论 -
隔板法
Problem C: 勤劳的ACgirlsTime Limit: 1 Sec Memory Limit: 128 MBSubmit: 54 Solved: 17[Submit][Status][Web Board]Descriptionzjc的ACgirls队的队员最近比较忙,为了能够取得更好的比赛成绩,他们制定了一个m天a掉n题的计划,a掉一题可以是这m天的任何时原创 2017-06-02 11:27:30 · 841 阅读 · 0 评论 -
hdu5753Permutation Bo(排列问题)
hdu5753Permutation Bo这个题的主干就是: 对于全排列h,h数组是一个1~n的数,只要对应的位置大于两端,相应的位置的c数组中的书就加进去。 我的: 然后对这个全排列进行分析,对i这个位置, 如果在中间的话,相邻就有两个元素,就是三个元素的全排列,有3!=6种情况,然而只有大的在中间,两个小的在左右这种情况有效,排列两种,所以所有情况中是1/3是符合的,所以对期望的贡献原创 2016-07-27 10:15:50 · 651 阅读 · 1 评论 -
Lucas学习
组合数取模就是求的值,当然根据,和的取值范围不同,采取的方法也不一样。(1)和 这个问题比较简单,组合数的计算可以靠杨辉三角,那么由于和的范围小,直接两层循环即可。 (2)和,并且是素数 这个问题有个叫做Lucas的定理,定理描述是,如果 那么得到原创 2017-05-16 16:19:54 · 273 阅读 · 0 评论 -
组合数的奇偶性判断
nefu 600结论: C(n,m) 的奇偶性判断: if((n & m) == m)为奇数,否则为偶原创 2017-04-03 15:01:27 · 1805 阅读 · 0 评论 -
排列组合初步学习
排列:从N个不同物体中不重复取出r个做排列:A(n,r):int mya(int n,int r){ int sum = 1; for(int i = n; i >= r; i --) sum *= i; return sum;}组合:从n个不同物体中不重复取出r个组合:C(n,r),这个模板不错:int myc(int n,int c){原创 2017-03-11 16:44:03 · 1119 阅读 · 0 评论 -
取三角形(排列组合 )
Bzoj3505 数三角形题意:在一个n * m的方格中数出有多少以顶点组成的三角形;思路:一共有(n + 1)* (m + 1)个点,首先有C(3,(n+ 1)*(m + 1))种组成方法,然后除去三点共线的情况就行了;三点共线的情况如下,1,首先是在水平线上或者在垂直线上的,为(n + 1)* C(3,m+ 1) + (m + 1) * C(3,n + 1);原创 2017-02-17 18:17:48 · 1721 阅读 · 0 评论 -
Codeforces 893E
题意:将x 分成y个数的方法,要求y个数相乘等于x;思路: 将x质因子分解,得到各个素因子的指数cnt,然后将cnt分成y份,利用隔板法,为C(cnt + y - 1,y- 1) == C(cnt + y - 1,cnt);因为里面可以出现负数, 俩俩出现,所以是C(y,0) + C(y,2) + C(y,4) + …… ==2^(y - 1);#includeusi原创 2017-11-28 20:46:09 · 324 阅读 · 0 评论