组合数学
kalilili
双眼闭三年。
展开
-
Steinhaus-Johnson-Trotter 生成全排列算法
Steinhaus-Johnson-Trotter算法是一种基于最小变换的全排列生成算法,对于排列a[1...n],该算法通过将a[i],与a[i-1](或a[i+1])进行交换,生成下一个排列,直到所有排列生成完毕为止,这样,当前排列与其后继排列只是两个相邻位置的元素发生了调换。当然,为了防止重复生成某一个排列,算法并非随意调换某两个元素之间的位置,其生成全排列的具体规则如下。首先,以字原创 2015-01-10 00:43:44 · 3335 阅读 · 0 评论 -
POJ2488A Knight's Journey(dfs+数学)
A Knight's JourneyTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 32422 Accepted: 11040DescriptionBackground The knight is getting bored of seeing t原创 2015-01-21 19:53:06 · 719 阅读 · 0 评论 -
计算组合数
1.防溢出:如果直接用c(n,m)=n!/(n-m)!*m! 来编程很可能会在算n!时就爆了long long,所以每一步最好把除分母也算上。所以对于c(n,m)来说取m=min(m,n-m)来算c(n,m)=n*(n-1)*(n-2)*...*(n-m+1)/m*(m-1)*(m-2)*...*1 。显然分子分母都是m项相乘,从后往前去算:先算(n-m+1)/1 ,then *原创 2015-01-05 12:08:54 · 658 阅读 · 0 评论 -
Codeforces Round #252 (Div. 2) D. Valera and Swaps(神奇的置换群)(好题)
D. Valera and Swapstime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputA permutation p of length n is a seque原创 2015-07-12 21:53:54 · 929 阅读 · 0 评论 -
Codeforces Round #315 (Div. 1) B. Symmetric and Transitive(Bell数的应用)(好题)
B. Symmetric and Transitivetime limit per test1.5 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputLittle Johnny has recently le原创 2015-08-12 21:31:04 · 1267 阅读 · 1 评论 -
Codeforces Round #313 (Div. 1) C. Gerald and Giant Chess(DP+组合数取模)(好题)
C. Gerald and Giant Chesstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputGiant chess is quite common in Ge原创 2015-07-23 21:55:05 · 720 阅读 · 0 评论 -
LA 4123 Glenbow Museum (组合数)
题意:对于一个边平行于坐标轴的多边形,我们可以用一个由R和O组成的序列来描述它:从某个顶点开始按照逆时针顺序走,碰到一个90°的内角记R;碰到一个270°的内角记O。这样的序列称为角度序列。定义星型多边形为多边形中存在一个点可以看到多边形边界上每一个点。现在给定正整数n,求有多少个长度为L的角度序列至少可以对应一个星型多边形。其中多边形的每条边长任意。思路:星型多边形值在多边形内存在一点,能看原创 2015-10-20 22:23:15 · 769 阅读 · 0 评论 -
UVA 11174 - Stand in a Line(组合递归计数)
大致题意:有n个人,给出m对关系,(a,b) 表示b是a的父亲, 现在有多少种方案使他们排成一列,使得没有人排在他们父亲前面(对1e9+7取模)思路:可见,给出了一颗森林,对于每棵树,树根显然必须排第一位,然后对每棵子树用组合统计位置方案树,再乘以子树的子问题方案数。到这里问题就算解决了,当然可以用dfs进行这种dp,但不妨人工迭代一下,每棵树的答案是 ans = (cnt(r原创 2015-10-13 23:12:26 · 478 阅读 · 0 评论