摘要: 思路挺简单的,题目中的每个命令(包括命令的逆)相当于一个置换。用O(n2k)的时间复杂度从右往左求出这些置换的乘积A,然后求m使Am = I(I为全等置换)还是先把A分解循环,m则等于所有循环节长度的最小公倍数。需要注意的是:执行命令是从右往左执行的,这是题目中说的=_=其他命令还好,mix那个命令... 阅读全文
posted @ 2015-03-12 22:33 AOQNRMGYXLMV 阅读(517) 评论(0) 推荐(0) 编辑
摘要: 把{1, 2, 3,,, n}叫做自然排列本题便是求有多少个n元排列P要至少经过k次交换才能变为自然排列。首先将排列P看做置换,然后将其分解循环,对于每个长度为i的循环至少要交换i-1次才能归位。设有d(i, j)个i元排列至少交换j次才能变成自然排列。则有d(i, j) = d(i-1, j) +... 阅读全文
posted @ 2015-03-12 14:33 AOQNRMGYXLMV 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 给出一个26个大写字母的置换B,是否存在A2 = B每个置换可以看做若干个循环的乘积。我们可以把这些循环看成中UVa 10294的项链, 循环中的数就相当于项链中的珠子。A2就相当于将项链旋转了两个珠子间的距离,珠子0、2、4...构成一个循环,一共有gcd(n, 2)个循环,每个循环的长度为n /... 阅读全文
posted @ 2015-03-12 13:26 AOQNRMGYXLMV 阅读(321) 评论(0) 推荐(0) 编辑