Quantcast
Channel: C++博客-Residence for sdfond-随笔分类-算法 - 组合数学
Browsing all 15 articles
Browse latest View live

Image may be NSFW.
Clik here to view.

PKU 3270

  做得很郁闷的一道题。我开始已经想到是要用置换来算,但是提交后总是WA。查代码查了N久也没有发现错误,感觉算法又没有问题。后来找到往年的解题报告,才发现我的基本思路没错,但是少考虑了一种情况。我之前认为最小代价等于一个置换内所有元素和 +(元素个数-2)*...

View Article



Image may be NSFW.
Clik here to view.

Dilworth定理

偏序集的两个定理:定理1 令(X,≤)是一个有限偏序集,并令r是其最大链的大小。则X可以被划分成r个但不能再少的反链。其对偶定理称为Dilworth定理:定理2 令(X,≤)是一个有限偏序集,并令m是反链的最大的大小。则X可以被划分成m个但不能再少的链。说白了就是 链的最少划分数=反链的最长长度相关的题目有pku 1065,pku 3636,pku 1548。这三个题目可以归结为:...

View Article

Image may be NSFW.
Clik here to view.

组合数学小结

主要分成以下几个部分:  排列组合与容斥原理  二项式定理  递推关系与生成函数  polya定理1.排列组合与容斥原理排列组合里面的4个重要的基本原理:加法原理、乘法原理、减法原理、除法原理前面两个最为基本,后面两个是根据前两个派生出来的。乘法原理有的时候的应用很巧妙,可以作为一种打开思路的办法。基本的排列组合之后,接下来引出了多重集。多重集的排列组合是一个很经典的问题,总结如下:多重集的排列:...

View Article

Image may be NSFW.
Clik here to view.

n阶常系数线性递推方程矩阵解法

n阶常系数线性齐次递推关系的解法有很多,特征方程法、生成函数法,但是对于编程最实用的是矩阵解法。我们定义所要求的f(n) = Ak-1 * f(n - 1) + Ak-2 * f(n - 2) + ... + A0 * f(n-k),其中f(0)...f(k-1)的初值已经给好。构造k * k的矩阵M:其中A =(Ak-1 Ak-2 ... A1),I是单位矩阵。然后构造一个k *...

View Article

Image may be NSFW.
Clik here to view.

polya定理小结

  polya定理是组合数学中比较难的一部分。首先需要对置换群、集合论有一定的了解,这样有助于理解burnside引理的证明。其次,polya定理只是对于在环上存在旋转、反射等等价的变换的一种计数方法,实际的题目中很多需要其他的知识来进行辅助。  环上的计数主要就是处理置换 -> 着色这种情况。很关键的一点是同一循环内着色相同。因此很多题目就在置换和着色上下文章。...

View Article


Image may be NSFW.
Clik here to view.

HOJ 2645 WNim

  lord wu给去年省赛出的一个题目,今天终于给搞出来了。  一开始完全想错了方向,总是觉得很复杂。后来发现计算SG值的时候,对于限制的状态只能走到0,也就是必胜态,这样就是一个裸的SG分解的题目了。接下来就很简单了,利用容斥原理算出SG值,结论同Nim。...

View Article

Image may be NSFW.
Clik here to view.

球装盒问题的进一步分析

  假设现在有p个球放入k个盒子中,对于球和盒子的属性分别做限制,然后询问方法数。这里的属性限制分别包括:球是不是相同的,盒子是不是相同的,盒子是否为空。  首先看最简单的情况:盒子可以为空,球和盒子都是不同的。那么一共有k ^ p种放法。如果规定盒子是非空的,那么就需要利用容斥原理,设第i个盒子是空的为一种属性,那么分别计算一个盒子为空的方法数,两个盒子为空。。。然后利用容斥原理就行了。...

View Article

Image may be NSFW.
Clik here to view.

抽屉原理 - PKU 3370 & PKU 2356

  一个经典的问题:给定n个数,求其中的任意一个子集满足集合中的每个元素值加和正好是n的倍数。刚开始怎么也没有思路,因为n很大,直接搜索显然是不行的。后来在组合数学书上找到了这个例题(晕,之前白看了,居然把这个经典的题目都给忘了),是抽屉原理的典型应用。...

View Article


Image may be NSFW.
Clik here to view.

POJ 1792 Hexagonal Routes

【题目大意】  题目的大意是给定一个由许多六面形边挨着边组成的图形,从中心处开始标号为1,按照一个螺旋的方向标号依次增加。问从一个点到另一个点的最短路径的长度和数目。【算法分析】...

View Article


Image may be NSFW.
Clik here to view.

HOJ 2550 Beijing 2008

  题目大意就是N个商店,M个人,每个人进入商店这个商店就赚n * d的钱,但是多个人只算一次钱。如果每个人进入每个商店的概率相同问最后所有商店期望的赚钱数是多少。  做得超级艰苦,最开始是列错了式子,推了一个上午,居然还推出了答案,发现是一个算组合数的式子,因此超时了。  下午请教了吉大牛,发现我算概率的时候考虑的不对,实际要用到容斥原理。于是又推了一个下午。。。最后式子终于对了但是求不出来和。...

View Article

Image may be NSFW.
Clik here to view.

UVa 3295 Counting Triangles

好久不写了啊,最近打算重新启用这个blog。就先写这个题目吧,满经典的。【题目大意】  m * n的区域内,每个整数坐标都有整点,问以这些整点为端点能够形成多少个三角形。(0 < m, n <= 1000)【题目分析】...

View Article

Image may be NSFW.
Clik here to view.

一个棋盘覆盖问题

  昨天看到名为“矩阵也疯狂”的帖子,老帖了,不过都是很有意思、很经典的题目。其中的第四题是说一个3*n的棋盘用1*2的棋子覆盖,求有多少种覆盖方法,结果模m,其中m、n < 2 ^ 32。  不考虑数据范围,一个O(n^2)的dp很容易想到,设f[n]是所求答案,n是奇数结果为0,否则有:    f[n] = f[n-2] * 3 + f[n-4] * 2 + f[n-6] * 2 +...

View Article

Image may be NSFW.
Clik here to view.

UVa 861 Little Bishops

【题目大意】  给定一个n*n的棋盘,求放置k个互不攻击的象的方法数。其中n <= 8,k <= n ^ 2。【题目分析】  对于棋盘放车问题可以用组合数学的知识来解决,但是对于含禁区的摆放问题,虽然组合数学给出了经典的棋盘多项式+容斥原理的解法,但是实际中棋盘多项式的求解是很困难的,因此一般需要借助状态压缩动态规划求解。...

View Article


Image may be NSFW.
Clik here to view.

polya定理再小结

     摘要: 话说ICPC的题目是越来越难,因为经典的算法大家都知道了,因此出题的方向只能是要么把模型隐藏的很深,要么就把一系列算法知识综合起来考察,这个时候分析问题的能力和灵活运用知识的能力就显得尤为重要。...

View Article

Image may be NSFW.
Clik here to view.

一道老题

  学弟问我的一个题目,去年本来做过,但是做的稀里糊涂,今天拿出来重新推导了一遍,特记录于此。  题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2971  先假设a2 = t, 题目给定了递推关系:An = 2 * t * An-1 - An-2 (n > 2),初值A1 = 1, A2 = t;题目要求Sn = An ^ 2 + An-1 ^...

View Article

Browsing all 15 articles
Browse latest View live




Latest Images