摘要: 题意: n个数编号从1~n..但是并不按顺序排列.. 现在想把他们互换位置最后得到1~n的序列.. 两个数可以交换位置的条件是 |i-j| == bi 输入:n 表示n个数 a[1], a[2], a[3]..a[i]..a[n] b[1], b[2], b[3]..b[i]..b[n]思路: 并查集.. 可以这么看..如果两个数在一个集合里,那么这两个数就可以互相交换位置了.. 所以就按照i+-b[i]把可以交换的位置的数和该数的归在一个集合里.. 最后查看是否所有要改的数都在一个集合里..Tips: 加的时候加的应该是a[i], 表示把这些数放在一个集合里... 阅读全文
posted @ 2013-04-27 09:43 Griselda. 阅读(176) 评论(0) 推荐(0) 编辑