组合数学
文章平均质量分 65
muczzcy
这个作者很懒,什么都没留下…
展开
-
HDU 1023 Train Problem II
/*高精度的Catalan数题目 公式: h ( n ) = h ( n - 1 ) * ( 4 * n - 2 ) / n + 1 */Problem : 1023 ( Train Problem II ) Judge Status : AcceptedRunId : 7618448 Language : G++ Author : CherryChou原创 2013-02-15 23:22:08 · 335 阅读 · 0 评论 -
poj 1286 Necklace of Beads -----polya计数
题意:3种颜色的珠子串在一起两种置换(翻转和对称),问一共有多少等价类。(模版题)Code:#include using namespace std;inline int gcd(int a,int b){ return b?gcd(b,a%b):a;}long long sol(int n){ long long x=1; while(n--)原创 2013-11-06 22:51:37 · 796 阅读 · 0 评论 -
POj 2409 Let it Bead ----- polya计数
题意:给定颜色种数和环上的珠子总数,问有多少种染色方案(通过旋转和翻转相同的算同一种)。这读不出来是硬伤。。。。两种情况讨论:1.旋转:循环节数 GCD(N,I);2.翻转: N%2 == 1 时,N个循环节数 (N+1)/ 2 个循环群。 N%2 == 0 时,N / 2 个循环节数 (N+2)/ 2 , N / 2 个循环节数原创 2013-11-06 18:00:34 · 666 阅读 · 0 评论 -
初识组合数学
看了好久的组合数学,还是看不懂。>_好在先把理论背下来吧。(证明看的云里雾里的受不了了) Burnside 定理 :不同等价类的个数 = 每个置换对应的一阶循环的个数之和/ 总的置换数! Polya 定理: 不同等价类的个数 = m的n次方之和,m指的就是着色的种类,n是指的每个置换所对应的循环节的个数!得好好看看置换、群、置换群这些东东。还有一片很NB的论文:原创 2013-11-06 14:46:42 · 807 阅读 · 0 评论 -
UVA 11401 Triangle Counting
sol:数学题,计数问题 递推公式:F[N]=F[N-1] + C [n] ; C[n] = 1/2 ((x-1)(x-2)/2 - (x-1)/2 ); #include using namespace std;typedef long long LL;const int maxn=1000000+10;LL f[maxn];int m原创 2013-05-29 14:02:18 · 561 阅读 · 0 评论 -
POJ 1014 Dividing(DFS、完全背包、母函数)
/*题意:每一行输入的6个数,第 i 个数表示价值为 i 的珠宝的个数,问这些珠宝是不是能等价平分给两个人*//*解法:1、最简单的方法就是用dfs搜索就行(占坑) 2、完全背包的基础题(占坑) 3、母函数。总价值 value=(∑( i * num )),如果value为奇数,那么珠宝不可分。当value为偶数是,就可利用母原创 2013-02-19 01:53:17 · 915 阅读 · 4 评论 -
HDU 1521 排列组合 (指数型母函数)
/*很裸很裸的指数型母函数。。。(注意:指数形式的母函数由于除以了大数,所以精度序号控制,否则会WA N多次)Ans= x ^ m的系数 * (m !)*/ Problem : 1521 ( 排列组合 ) Judge Status : AcceptedRunId : 7628739 Language : C++ Author : CherryCh原创 2013-02-19 02:47:07 · 441 阅读 · 0 评论 -
POJ 3252 Round Numbers
大致题意:输入两个十进制正整数a和b,求闭区间 [a ,b] 内有多少个Round number所谓的Round Number就是把一个十进制数转换为一个无符号二进制数,若该二进制数中0的个数大于等于1的个数,则它就是一个Round Number注意,转换所得的二进制数,最高位必然是1,最高位的前面不允许有0规定输入范围: 1用组合做很猥琐的题,我首先说说猥琐的地方,再原创 2013-02-17 00:35:24 · 370 阅读 · 0 评论 -
母函数模版小结
下面是模板#includeusing namespace std;const int _max=10001;int c1[_max],c2[_max];int main(){int nNum;int i,j,k;while(cin>>nNum){for(i=0;i{c1[i]=1; //初始化系数都为1 c2[i]=0;}//总共原创 2013-02-16 18:27:28 · 337 阅读 · 0 评论 -
POJ 1019 Number Sequence
大致题意:有一串数字串,其规律为1 12 123 1234 12345 123456 1234567 12345678 123456789 12345678910 1234567891011 123456789101112······k输入位置n,计算这一串数字第n位是什么数字,注意是数字,不是数!(之前囧在这)例如12345678910的第10位是1,而不是10,第11位是0,也不是原创 2013-02-16 17:56:51 · 412 阅读 · 0 评论 -
HDU 1246 自共轭Ferrers图
Problem : 1246 ( 自共轭Ferrers图 ) Judge Status : AcceptedRunId : 7324872 Language : G++ Author : CherryChouCode Render Status : Rendered By HDOJ G++ Code Render Version 0.01 Beta#incl原创 2013-02-16 18:36:10 · 519 阅读 · 0 评论 -
HDU 1028 Ignatius and the Princess III (母函数)
/*普通母函数,求不同的等式个数*/Problem : 1028 ( Ignatius and the Princess III ) Judge Status : AcceptedRunId : 7619730 Language : C++ Author : CherryChouCode Render Status : Rendered By HDOJ C+原创 2013-02-16 15:17:51 · 295 阅读 · 0 评论 -
HDU 2082 找单词 (母函数)
/*母函数,求:X的指数 Problem : 2082 ( 找单词 ) Judge Status : AcceptedRunId : 7619556 Language : C++ Author : CherryChouCode Render Status : Rendered By HDOJ C++ Code Render Version 0.01 Beta原创 2013-02-16 15:02:36 · 350 阅读 · 0 评论 -
POJ 1496 Word Index || POJ 1850 Code
/*本质:从N个数中取出M个数的组合思想,C(n,m)=C(n-1,m-1)+C(n-1,m)。*//*EP:字符串长度是5,分成2部分,第一部分是长度从1到4的和(C(26,1)+C(26,2)+C(26,3)+C(26,4));*//*第二部分是对应的每一位小于该符号对应的字符串个数。*/Source CodeProblem: 1496 User: im原创 2013-02-16 00:16:45 · 317 阅读 · 0 评论 -
POJ 1833 排列
Source CodeProblem: 1833 User: imutzcyMemory: 172K Time: 454MSLanguage: C++ Result: AcceptedSource Code/*要用C++提交,G++ 会TLE*//*此题用STL的 next_permutation(op原创 2013-02-15 23:41:32 · 301 阅读 · 0 评论 -
POJ 2084 Game of Connections
/*高精度的Catalan数题目 公式: h ( n ) = h ( n - 1 ) * ( 4 * n - 2 ) / n + 1 */Source CodeProblem: 2084 User: imutzcyMemory: 296K Time: 0MSLanguage: C++ Result: Accepted原创 2013-02-15 23:24:05 · 349 阅读 · 0 评论 -
HRBEU 占武卖花
占武卖花TimeLimit: 1 Second MemoryLimit: 64 MegabyteTotalsubmit: 8 Accepted: 2 Description占武是经济学班的学生,不过和那些理论家不同,占武是个务实型。他始终认为任何经济活动脱离了实际操作都是不可靠的。最近他在学习心理经济学,为了检测商品配置对购物者心理的影响,他决原创 2013-02-12 22:09:34 · 874 阅读 · 0 评论 -
POJ 1942 Paths on a Grid
题意:一个A*B的矩阵,题问从左下点沿矩阵的边走到右上点有多少种不同的走法,每次只能向右走或者向上走。 思路:排列组合计数。/*每一个点的不同走法的总数,是由左边的点和下边的点的总数之和。*//*这就很容易联想到排列组合的一个公式:1942 : Paths on a Grid (排列组合)" border="0" name="image_operate_45921304427571原创 2013-02-16 01:06:40 · 308 阅读 · 0 评论 -
poj 2154 Color ----polya计数
题意:此题跟POJ 2409类似,只不过只考虑旋转,不考虑翻转;但是需要用到快速幂和欧拉函数的优化求解。/*旋转:顺时针旋转i格的置换中,循环的个数为gcd(i,n),每个循环的长度为n/gcd(i,n)。如果枚举旋转的格数i,复杂度显然较高。有没有好方法呢?可以不枚举i,反过来枚举L。由于L|N,枚举了L,再计算有多少个i使得0即gcd(i,n)=n/L。不妨原创 2013-11-07 10:03:59 · 598 阅读 · 0 评论