摘要:
链接这个东东是新知识 let's 从头学起吧这篇文库讲的不错 至少把各种概念学了一遍然后再看此题 共有两种类型的置换 一种是旋转之后相同算一种 一种是翻转之后相同算一种对于旋转 共有N次置换 转1下到转N下 对于每一次的循环节 各大牛给出了结论 为gcd(n,i) 这个我也不会证 姑且记住吧对于翻转 这个从图中可以看出来 找对称轴 分2种情况if n%2==0也分两种情况 若以两个相对的珠子为对称轴 那循环节为(n-2)/2+2若以 其它不含珠子的线为对称轴 循环节为n/2 个置换n/2次else (n-1)/2+1然后 就可以按ploya定理做了 文库有讲 就不说ploya是什么了 阅读全文
摘要:
链接对于组合数学是一点也不了解讲解重要一点 要知道一个循环里最少的交换次数是m-1次 、 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define N 10010 8 #define INF 0xfffffff 9 int a[N],b[N],po[N*10],vis[N*10];10 int main()11 {12 int i,n;13 while(scanf("%d",&n)!=EOF)14 {15 memset(vis,0,si... 阅读全文