[Poj3128]Leonardo's Notebook】的更多相关文章

[Poj3128]Leonardo's Notebook 标签: 置换 题目链接 题意 给你一个置换\(B\),让你判断是否有一个置换\(A\)使得\(B=A^2\). 题解 置换可以写成循环的形式,所以我们不妨来研究循环平方的特性. 对于一个奇数长度的循环\[(a_1 a_2 a_3 a_4 ...... a_{2n+1}),(a_1 a_2 a_3 a_4 ...... a_{2n+1})(a_1 a_2 a_3 a_4 ...... a_{2n+1})=(a_1 a_3 a_5 .....…
Leonardo's Notebook Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 2324   Accepted: 988 Description — I just bought Leonardo's secret notebook! Rare object collector Stan Ucker was really agitated but his friend, special investigator Sa…
给出一个26个大写字母的置换B,是否存在A2 = B 每个置换可以看做若干个循环的乘积.我们可以把这些循环看成中UVa 10294的项链, 循环中的数就相当于项链中的珠子. A2就相当于将项链旋转了两个珠子间的距离,珠子0.2.4...构成一个循环,一共有gcd(n, 2)个循环,每个循环的长度为n / gcd(n, 2) 所以当一个循环的长度为奇数的时候,平方以后还是原来的长度: 当一个循环的长度为偶数的时候,平方以后就会分解为两个长度都等于原来循环长度一半的循环. 先将置换B分解循环,对于其…
题意:给你一个置换P,问是否存在一个置换M,使M^2=P 思路:资料参考 <置换群快速幂运算研究与探讨> https://wenku.baidu.com/view/0bff6b1c6bd97f192279e9fb.html 结论一: 一个长度为 l 的循环 T,l 是 k 的倍数,则 T^k 是 k 个循环的乘积,每个循环分别是循环 T 中下标 i mod k=0,1,2- 的元素按顺序的连接. 结论二:一个长度为 l 的循环 T,gcd(l,k)=1,则 T^k 是一个循环,与循环 T 不一…
传送门 题意:26个大写字母的置换$B$,是否存在置换$A$满足$A^2=B$ $A^2$,就是在循环中一下子走两步 容易发现,长度$n$为奇数的循环走两步还是$n$次回到原点 $n$为偶数的话是$\frac{n}{2}$次,也就是说分裂成了两个循环 综上$B$中长度为偶数的循环有奇数个就是不存在啦 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #inclu…
题意: 给出26个大写字母的置换B,问是否存在一个置换A,使得A2 = B 解析: 两个长度为n的相同循环相乘,1.当n为奇数时结果也是一个长度为n的循环:2. 当n为偶数时分裂为两个长度为n/2 (这个n/2可能是奇数 也可能是偶数)的循环 那么倒推 意思也就是说 对于长度为奇数的循环B(奇数个相同长度的倒推1  偶数个相同长度的倒推2)  总可以找出来一个循环A  使得A2 = B 而对于长度为偶数的循环B   只有偶数个相同长度的才能从2倒推 不然 就不能倒推 即找不到一个A使得A2 =…
题意 PDF 分析 给出一个26个大写字母的置换B,是否存在A^2 = B 每个置换可以看做若干个循环的乘积.我们可以把这些循环看成中UVa 10294的项链, 循环中的数就相当于项链中的珠子. A^2就相当于将项链旋转了两个珠子间的距离,珠子0.2.4...构成一个循环,一共有gcd(n, 2)个循环,每个循环的长度为n / gcd(n, 2) 所以当一个循环的长度为奇数的时候,平方以后还是原来的长度: 当一个循环的长度为偶数的时候,平方以后就会分解为两个长度都等于原来循环长度一半的循环. 先…
题意:给定一个置换 B 问是否则存在一个置换 A ,使用 A^2 = B. 析:可以自己画一画,假设 A = (a1, a2, a3)(b1, b2, b3, b4),那么 A^2 = (a1, a2, a3)(b1, b2, b3, b4)(a1, a2, a3)(b1, b2, b3, b4),不相关循环可以有交换律. A^2 = (a1, a2, a3)(a1, a2, a3)(b1, b2, b3, b4)(b1, b2, b3, b4),分别考虑这两个循环,可以得到两个奇循环置换后仍然…
[题意] 给出26个大写字母组成 字符串B问是否存在一个置换A使得A^2 = B [分析] 置换前面已经说了,做了这题之后有了更深的了解. 再说说置换群.   首先是群. 置换群的元素是置换,运算时是置换的连接. 前面已经说了,每个置换都可以写成互不相交的循环的乘积. 然后分析一下这题. 假设A置换是(a1,a2,a3)(b1,b2,b3,b4)   [这里用循环表示 那么A*A=(a1,a2,a3)(b1,b2,b3,b4)(a1,a2,a3)(b1,b2,b3,b4) 不相交的循环满足交换律…
题目:http://poj.org/problem?id=3128 从环的角度考虑. 原来有奇数个点的环,现在点数不变: 原来有偶数个点的环(设有 k 个点),现在变成两个大小为 k/2 的环. 所以判断一下现在的有偶数个点的环是不是成双成对的就行了. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ; int n,c…