摘要:
题目:
在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序数对。一个排列中逆序的总数就称为这个排列的逆序数。
如{2,4,3,1}中,2和1,4和3,4和1,3和1是逆序数对,因此整个数组的逆序数对个数为4,现在给定一数组,要求统计出该数组的逆序数对个数。 阅读全文
摘要:
思路:
对于递归的考察。类似于不断的二分枚举,总之考察的还是比较深入的,特别是用一个vector模拟栈的进出都是需要学习的地方。以后还需要仔细理解。 阅读全文
摘要:
思路:
1. 生成一组初始数据:01234567
2. 对这组数据进行排列组合,然后找满足8皇后解法的排列即:任何两个皇后都不能在同一列或对角线上
3. permutation的时候要注意,交换数据要从自身交换起,终止的时候是index == length。 阅读全文
摘要:
思路:
1. x & (-x)所得的结果即是x最后一位1所在的位置。
2. x = a ^ b ^ c, f(x) = x & (-x)
3. f(x^a)^f(x^b)^f(x^c) 结果必有一位是1,因为f(m)^f(n)结果为0或者为2个1
4. f(x^a)^f(x^b)^f(x^c)的第m位为1,则x^a, x^b, x^c必有1个或者3个第m位为1
5. 用反证法可得,x^a, x^b, x^c只有一个第m位为1 阅读全文
摘要:
http://zhedahht.blog.163.com/blog/static/2541117420116135376632/ 阅读全文