
数学-组合数学、计数、置换
文章平均质量分 79
FDU_Nan
去做一个会思考,善于思考的人儿。
展开
-
poj 1286 Necklace of Beads & poj 2409 Let it Bead(初涉polya定理)
http://poj.org/problem?id=1286题意:有红、绿、蓝三种颜色的n个珠子,要把它们构成一个项链,问有多少种不同的方法。旋转和翻转后相同的属于同一种方法。polya计数。搜了一篇论文Pólya原理及其应用看了看polya到底是什么东东,它主要计算全部互异的组合的个数。对置换群还是似懂略懂。用polya定理解决问题的关键是找出置换群的个数及哪些置换群原创 2014-06-07 18:48:27 · 1180 阅读 · 0 评论 -
鸽巢原理简单应用
http://poj.org/problem?id=2356从n个数里面取出一些数,这些数的和是n的倍数。并输出这些数。先预处理出前n个数的和用sum[i]表示前i个数的和。若某个sum[i]是n的倍数,直接输出前i个数即可。否则说明n个数中对n取余的结果有n-1种,即余数为(1~n-1),根据鸽巢原理知必定至少存在两个sum[i]与sum[j]对n取余的结果相等。那么原创 2014-08-12 20:27:35 · 1962 阅读 · 0 评论 -
hdu 4927 Series 1(组合,java大数)
http://acm.hdu.edu.cn/showproblem.php?pid=4927比赛时分分钟推出来公式后,陷入无限的tle中。起初想处理一遍,但是3000的数量内存装不下,直接编译就不过。为了不超内存,然后又试着把三个数合并为一个,四个数合并一个,100个数合并为一个,还是TLE。。说到底还是数学不好啊,杨辉三角的第n行的第m个数为组合数c[n-1][m-1]。应用原创 2014-08-08 11:28:01 · 948 阅读 · 0 评论 -
hdu 1171 Big Event in HDU(母函数|多重背包)
http://acm.hdu.edu.cn/showproblem.php?pid=1171题意:有n种物品,给出每种物品的价值和数目,要将这些物品尽可能的分成相等的两份A和B且A>=B ,输出A,B。母函数可以过,但感觉最直接的方法应该是多重背包。母函数的话,也是按总价值的一半求,从一半到小枚举,直到找到系数不为0的就是B。#include #include原创 2014-07-27 20:11:24 · 1015 阅读 · 0 评论 -
hdu 1028 Ignatius and the Princess III(母函数,完全背包)
http://acm.hdu.edu.cn/showproblem.php?pid=1028整数划分问题。第一道母函数。。。小于等于n的整数共有n个,1,2......n,每个数都有无限多个,对于整数1,它所对应的母函数为(1+x+x^2+...+x^k+...),整数2对应的母函数为(1+x^2+X^4+...+x^(2*k)+...),整数3对应的母函数为(1+x^原创 2014-07-27 14:24:21 · 1409 阅读 · 0 评论 -
hdu 1085 Holding Bin-Laden Captive!(母函数)
http://acm.hdu.edu.cn/showproblem.php?pid=1085题意:1元,2元,5元的硬币分别有num[1],num[2],num[3]个。问用这些硬币不能组合成的最小钱数。继续母函数。有两个注意的地方:对c2[]初始化的同时也要对c1[]初始化。最后枚举到sum+1,因为存在[1,sum]都可以凑成的可能,这时输出sum+1。原创 2014-07-27 19:16:06 · 846 阅读 · 0 评论 -
hdu 1398 Square Coins(母函数|完全背包)
http://acm.hdu.edu.cn/showproblem.php?pid=1398题意:有价值为1^2,2^2....7^2的硬币共17种,每种硬币都有无限个。问用这些硬币能够组成价值为n的钱数共有几种方案数。母函数:#include #include #include #include #include #include #include #i原创 2014-07-27 17:01:45 · 1122 阅读 · 0 评论 -
hdu 2082 找单词(母函数|多重背包)
http://acm.hdu.edu.cn/showproblem.php?pid=2082每一个字母的价值固定,但数目不定。所以每个字母对应的表达式也不同,若第i个字母的个数为a[i],价值为i,那么它的母函数为(1+x^i+x^(2i)+.....+x^(a[i]*b[i]))。那么将i属于[1,26]的母函数相乘得到的x^m(1#include #include原创 2014-07-27 14:56:47 · 1155 阅读 · 0 评论 -
poj 1721 CARDS(置换)
http://poj.org/problem?id=1721大致题意:原始序列通过洗牌机洗牌s次后变为当前序列,已知当前序列,求原始序列。在置换群快速幂运算 研究与探讨中最后有详解,有两种解法,一种是求出置换的长度a(即一副牌洗a次后变回原来的位置),现已知原始序列置换s次变为当前序列,那么当前序列再置换a-s次就是原始序列了。求a就是直接模拟每个置换的过程,直到某序列与当原创 2014-06-16 16:53:35 · 1499 阅读 · 0 评论 -
poj 2154 Color(polya计数 + 欧拉函数优化)
http://poj.org/problem?id=2154大致题意:由n个珠子,n种颜色,组成一个项链。要求不同的项链数目,旋转后一样的属于同一种,结果模p。n个珠子应该有n种旋转置换,每种置换的循环个数为gcd(i,n)。如果直接枚举i,显然不行。但是我们可以缩小枚举的数目。改为枚举每个循环节的长度L,那么相应的循环节数是n/L。所以我们只需求出每个L有多少个i满足gc原创 2014-06-15 19:23:52 · 1152 阅读 · 0 评论 -
poj 3128 Leonardo's Notebook(置换的幂)
http://poj.org/problem?id=3128大致题意:输入一串含26个大写字母的字符串,可以把它看做一个置换,判断这个置换是否是某个置换的平方。思路:详解可参考置换群快速幂运算 研究与探讨。可以先正着考虑一个置换的平方出现什么情况。对于置换中的循环,若其长度为偶数,平方以后一定分成了两个长度相等的循环,若长度是奇数,平方以后仍是一个循环,长度不变。因原创 2014-06-16 19:35:10 · 1204 阅读 · 0 评论 -
poj 1026 Cipher(置换)
http://poj.org/problem?id=1026大致题意:给出数字n和一个1~n的序列num[]。然后给出若干个字符串,让字符串的下标i和num[i]交换,问交换K次后得到的字符串是什么。输入的字符串长度小于等于n,若小于n就用空格来补。例如样例14 5 3 7 2 8 1 6 10 9H e L L o B o b ' ' ' '原创 2014-06-09 10:23:50 · 973 阅读 · 0 评论 -
poj 3270 Cow Sorting(初涉置换群)
http://poj.org/problem?id=3270大致题意:给出n个整数,要将它们转化成递增序列,每交换其中两个数的代价是这两个数之和。问排序成功后的最小代价。该题考察的是置换群知识。在黑书p247上有详细的讲解。总结下置换群,方便复习。群:给定一个集合G={a,b,c...}和集合G上的二元运算 ·,如果满足封闭性,结合律,存在单位元和逆元,则成集合原创 2014-06-08 18:59:54 · 1229 阅读 · 3 评论 -
zoj How Many Sets I(组合计数)
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4535一个集合s有n个元素,求满足这样的集合序列{s1,s2....sk}使S1 ∩ S2 ∩ ... ∩ Sk = ∅,si是s的子集。从每个元素考虑会使问题变得简单。首先n个元素是相互独立的,单独考虑第i个元素,它在k个子集的所有情况是2^k,原创 2014-11-05 20:18:31 · 1197 阅读 · 0 评论