ACM•数学
文章平均质量分 81
kksleric
这个作者很懒,什么都没留下…
展开
-
0-1分数规划问题
0-1分数规划问题是指求出解集{xi|xi=0或1}使目标(c1x1+c2x2+...+cnxn) /(d1x1+d2x2+…+dnxn)=cx/dx达到最大。对于分数规划问题,有许多算法都能利用下面的线性目标函数解决问题。 Q(L): 最小化 cx-Ldx xi∈{0,1}记z(L)为Q(L)的最值。令x*为分数规划的最优解,并且令L*= (cx*原创 2012-05-01 20:01:22 · 2077 阅读 · 0 评论 -
积性函数(poj1845 poj2480 hdu2879 )
定义:对于正整数n的一个算术函数 f(n),若f(1)=1,且当a,b互质时f(ab)=f(a)f(b),在数论上就称它为积性函数。若对于某积性函数 f(n) ,就算a, b不互质,也有f(ab)=f(a)f(b),则称它为完全积性的性质:积性函数的值完全由质数的幂决定常见积性函数: φ(n) -欧拉函数,计算与n互质的正整数之数目 μ(n)原创 2012-10-22 17:32:23 · 1410 阅读 · 0 评论 -
Fibonacci数列
通项式:F(n) = (((1+Sqrt(5))/2)^n – ((1-Sqrt(5))/2)^n)*1/Sqrt(5)递推式:F0 = 0, F1 = 1, and Fn = F(n − 1) + F(n − 2) [定理1]标准Fibonacci序列(即f(0)=0,f(1)=1)当N大于1时,一定有f(N)和f(N-1)互质[定理2]若i为奇数, f(i)*f(i)=f(i-1)原创 2012-09-25 10:43:55 · 1061 阅读 · 0 评论 -
HDU 4048 Zhuge Liang's Stone Sentinel Maze
题意:给出m种不同重量的石子, 每一种石子的个数无穷多。从中选出N个石子,排成一个环,使得环上的石子重量的最大公约数为1. 旋转同构视为相同方案。解法:问题转化为从m种数中找出n(循环节个数)个最大公约数为1的数字的排列数,于是想到找补集:满足最大公约数为2的充分必要条件是所选的数都能被2整除,满足最大公约数为3的充分必要条件是所选的数都能被3整除,满足最大公约数为6的方案被重复计算了,于是要原创 2012-08-02 10:47:25 · 1014 阅读 · 0 评论 -
Pólya计数小结
Burnside引理:记C(f)为在置换f下保持不变的着色方案的个数,那么本质不同的着色方案数位所有置换f的C(f)值的平均数。如果求给定置换C(f)的方法为“一次判断每个着色方案是否在该置换下不变”由于每个方案包含p个“格子”的颜色信息,考察每个方案的复杂度为O(p),考察所有n种着色方案的复杂度为O(np),由于有s种置换方案,因此时间复杂度为O(nsp).Polya定理:原创 2012-09-19 15:55:31 · 1613 阅读 · 0 评论 -
polya计数定理
Burnside引理:记C(f)为在置换f下保持不变的着色方案的个数,那么本质不同的着色方案数位所有置换f的C(f)值的平均数。如果求给定置换C(f)的方法为“一次判断每个着色方案是否在该置换下不变”由于每个方案包含p个“格子”的颜色信息,考察每个方案的复杂度为O(p),考察所有n种着色方案的复杂度为O(np),由于有s种置换方案,因此时间复杂度为O(nsp).Polya定理:如果用k原创 2012-07-16 22:54:52 · 2038 阅读 · 1 评论 -
差分序列(poj 2914 Angry Teacher & poj 2515 Birthday Cake)
poj 2515 Birthday Cake题意:给出m和n,求Sigma(i^m) 0解法:最裸的差分序列,根据性质3,只需求得第0条对角线的n+1个值即可。import java.io.OutputStreamWriter;import java.io.PrintWriter;import java.math.BigInteger;import java.util.Sca原创 2012-09-26 16:14:05 · 1964 阅读 · 0 评论 -
HDU 3441 Rotation(Polya计数)
题意:将一个由A*A个方格组成的方块,分成k个B*B的方块和1个小方格后连乘一个由k+1个物体组成的环形物,如图,A=3时有两种分法。用C种颜色为每个方格染色,旋转得到的两种方案记为相同方案,问一共有多少种不同方案。解法:如果将B*B的小正多边形看做一个整体,则B*B的方案数即外围“长度为k的项链”的颜色数,因此此题要嵌套两个polya分别对B*B和K+1个物体的方案数分别计算。1.由原创 2012-07-25 19:48:18 · 932 阅读 · 0 评论 -
置换群幂运算
1.置换群中有一个定理:设T为一置换,e为单位置换,T^k=e,那么k的最小正整数解是T的拆分的所有循环长度的最小公倍数。此定理用来解决Poj 2369Permutation2.T^k将长度为L的置换T分裂成gcd(L,K)份,每个循环分别是循环T中下标i mod gcd(l,k)=0,1,2…的元素的连接。单个循环置换幂运算:1、循环长度与指数互质时的整幂运算设T=a原创 2012-07-27 14:21:23 · 3753 阅读 · 2 评论 -
(Matrix67)位运算应用进阶
二进制中的1有奇数个还是偶数个 我们可以用下面的代码来计算一个32位整数的二进制中1的个数的奇偶性,当输入数据的二进制表示里有偶数个数字1时程序输出0,有奇数个则输出1。例如,1314520的二进制101000000111011011000中有9个1,则x=1314520时程序输出1。var i,x,c:longint;begin readln(x); c转载 2012-07-29 10:15:22 · 1621 阅读 · 0 评论 -
(Matrix67)十个利用矩阵乘法解决的经典题目
好像目前还没有这方面题目的总结。这几天连续看到四个问这类题目的人,今天在这里简单写一下。这里我们不介绍其它有关矩阵的知识,只介绍矩阵乘法和相关性质。 不要以为数学中的矩阵也是黑色屏幕上不断变化的绿色字符。在数学中,一个矩阵说穿了就是一个二维数组。一个n行m列的矩阵可以乘以一个m行p列的矩阵,得到的结果是一个n行p列的矩阵,其中的第i行第j列位置上的数等于前一个矩阵第i行上的m个数与后一个转载 2012-07-30 11:52:23 · 1720 阅读 · 0 评论 -
Sgu棋盘覆盖系列
求n*n的棋盘上放K个象的放法, 象可以对角线相互攻击解法:把红色方格从棋盘中抽出,再将棋盘和小方格都旋转45°再压缩,由于两种颜色的棋盘互不攻击,印刻可以看成两个棋盘,格子棋盘上变为放只能上下攻击的车的个数(详见黑书p244)。Sgu 221 Big Bishops解法同上,只是把数据放大了,超long long ,用java里的BigInteger原创 2012-07-29 10:22:53 · 927 阅读 · 0 评论 -
排列组合&区间计数
Poj 1850 Code题意:由最多8位的小写字母组成的单词(每个单词各个位置上的字母按照升序排列)先按长度排序再按照字典序排列,先给出一个单词,问此单词的排名;解法:首先求出长度小于l该单词长度的单词的个数。然后开始统计相同长度且排在前面的单词数,从第一个字母开始,对于每个字母x,求出第i为是x前面的字母时能组成多少单词。。。int res=0,len=s.length(),l原创 2012-05-09 22:23:36 · 625 阅读 · 0 评论 -
树形DP入门
(因为上次比赛sb地把一道树形dp当费用流做了,受了点刺激,用一天时间稍微搞一下树形DP,今后再好好搞一下)基于背包原理的树形DPpoj 1947 Rebuilding Roads题意:给你一棵树,让你求最少剪掉多少条边可以剪出一棵点数为m的子树.解法:dp[i][j]表示i节点得到j个节点的子树至少要剪多少边,对于每个节点a和它的孩子b,如果剪掉b,则dp(s)[a][j]=dp原创 2012-05-04 19:30:59 · 840 阅读 · 0 评论