PKU 1674 Sorting by Swapping
2010-01-27 01:07
537 查看
一开始打算用排序,然后计算当中的交换次数,发现有点难.看了discuss才知道.算法很简单,但是给不出严密的证明.
找出序列中所有的"环",这里的"环"就是指它们互相交换之后能成为标准序列的最小集合
交换的总次数 = 元素个数 - 环数
很久没做题了,写写报告...
找出序列中所有的"环",这里的"环"就是指它们互相交换之后能成为标准序列的最小集合
交换的总次数 = 元素个数 - 环数
很久没做题了,写写报告...
#include<stdio.h> int a[10002]; bool b[10002]; int main() { int n; scanf("%d",&n); while(n--) { int m; scanf("%d",&m); int i,j; int sum=0; for(i=1;i<=m;i++) { scanf("%d",&a[i]); //读入数据 b[i]=0; //初始化为未访问 } for(i=1;i<=m;i++) { if(b[i]==0) //如果此结点未被访问 { b[i]=1; //标记为已被访问 j=i; while(a[j]!=i) //开始搜索,直到搜索的路径构成环 { j=a[j]; b[j]=1; } b[j]=1; sum++; } } printf("%d/n",m-sum); } return 0; }
相关文章推荐
- pku1674 Sorting by Swapping
- pku1674 Sorting by Swapping
- pku_1674 Sorting by Swapping 解题报告
- pku 1674 Sorting by Swapping
- [数学题] Sorting by Swapping pku 1674
- poj 1674 Sorting by Swapping
- [POJ 1674] Sorting by Swapping
- POJ 1674 Sorting by Swapping(需…
- poj 1674 Sorting by Swapping
- poj 1674 Sorting by Swapping
- POJ-1674 Sorting by Swapping 置换群
- poj 1674 Sorting by Swapping 置换群
- poj 1674 Sorting by Swapping(数字置换环)
- POJ 1674 Sorting by Swapping 笔记
- poj 1674 Sorting by Swapping
- Sorting by Swapping
- Sorting by Swapping
- Python sorting list of dictionaries by multiple keys
- Internal Sorting: Heapsort-1: Sorting by Selection
- Internal Sorting: Binary insertion: Sorting by Insertion